Skip to content

fast01/embedded-scripting-languages

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 

Repository files navigation

Embedded scripting languages

The following is a list of reasonably mature open source embedded scripting languages to use in your application.

Project name/link Implementation language GC License Notes
AngelScript C++ Ref. counting zlib A curly brace language resembling C++ itself.
ChaiScript C++ Ref. counting 3-clause BSD
Chibi Scheme C Tracing 3-clause BSD Implements R7RS small.
CHICKEN Scheme C Tracing 3-clause BSD Implements R5RS (with some changes). R7RS support is a work in progress. Examples of embedding CHICKEN.
Clasp Common Lisp, C++ MPS GC (Boehm-Weiser also supported) LGPL 2+ Full Common Lisp implementation well integrated with C++, using LLVM for the code generation, to integrate closely with C++ applications or libraries.
Duktape C Ref. counting + cycle-detecting tracing GC MIT Implements JavaScript E5/E5.1.
DWScript Object Pascal (Delphi 2009 or later) Ref. counting + cycle-detecting tracing GC MPL 1.1, GPL 3 (JavaScript code generator) Description. A statically typed Delphi/Free Pascal-like language. Can compile to JavaScript.
Embeddable Common Lisp Common Lisp, C Boehm-Weiser GC LGPL 2+ Full Common Lisp implementation, available as a shared library libecl.so embeddable in any C, C++ or other application.
Espruino C Tracing MPL 2.0 Implements a subset of JavaScript ES5 in a way suitable for embedded hardware with 8+ KiB RAM.
Go-Lua Go Tracing (Go's GC) MIT Implements a subset of Lua 5.2.
GopherLua Go Tracing (Go's GC) MIT Implements Lua 5.1 with the added support for Go's channels. Lacks the debug hooks and several functions from the C version.
GNU Guile C Boehm LGPL 3+
Jim Tcl C Tracing 2-clause BSD Largely compatible with Tcl 8.5 with its own additions.
JTcl Java Ref. counting Various BSD-like Tcl 8.4 with some 8.5 features for the JVM.
LIL C, Object Pascal (separate implementations) None (no reference support) zlib A Tcl-like language incompatible with mainline Tcl.
Lily C Ref. counting + GC MIT A language focusing on expressiveness and safety. How to embed and extend Lily.
Lua C Tracing MIT
luerl Erlang Tracing Apache License 2.0 An implementation of Lua 5.2 in pure Erlang with some features like goto absent.
LuaJ Java Tracing (JVM's GC) MIT A Lua 5.2 spec-compliant interpreter written in Java for JME and JSE. Complies Lua directly to JVM bytecode.
LuaJIT C Tracing MIT Fully compatible with Lua 5.1. Has a uilt-in C FFI library. Very fast.
Mono C Tracing MIT and other Implements the CLR.
mruby C Tracing MIT
otto Go Tracing (Go's GC) MIT Implements ES5 with some limitations.
Pascal Script Object Pascal Manual MM Custom non-copyleft Statically typed. Implements "most of Object Pascal". Can't define new classes.
Pawn C None (no heap allocation) Apache License 2.0 with a static linking clause to explicitly permit static linking
Python C Ref. counting + cycle-detecting tracing GC PSFL (BSD-like) Embedding Python in Another Application.
Squirrel C++ Ref. counting MIT
szl C Ref. counting MIT A small and simple Tcl-like language, with a set of bindings and FFI.
Tcl C Ref. counting Tcl license (BSD-like)
TinyScheme C Tracing? 3-clause BSD Implements a subset of R5RS.
Wren C Tracing MIT A small class-based performance-oriented scripting language.

Contributing

Your contributions are welcome! Please submit a pull request or create an issue to add a new language to the list.

License

CC0

About

A list of embedded script languages

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published