Skookum JS, or sjs for short, is a JavaScript runtime focused on providing comprehensive POSIX APIs.
The motivation for this project comes from answering the question "how would a JavaScript runtime look like if there were no browsers?".
- Small footprint
- Ecmascript ES5/ES5.1 compliant, some features borrowed from Ecmascript ES6
- TypedArray and Buffer support
- Built-in regular expression engine
- Built-in Unicode support
- Tail call support
- Combined reference counting and mark-and-sweep garbage collection with finalization
- CommonJS-based module loading system
- Support for native modules written in C
- Rich standard library
- Binary name 25% shorter than Node
Skookum JS 0.1.0 running on linux x64
[Engine: Duktape v1.5.0 (83d5577)]
[Build: Debug on 2016-05-08T11:05:16Z]
[GCC 5.3.1 on Linux-4.5.0-1-amd64]
sjs> print('hello world!');
hello world!
= undefined
sjs>
Check it out here.
Skookum JS currently supports Linux and OSX. See compilation instructions here.
Check the LICENSE file. Hint: it's MIT.
Saúl Ibarra Corretgé (@saghul)
Please see CONTRIBUTING.
sjs would not have been possible without some other projects existing. Some served as a source of inspiration, some as a source of actual code, and the author would like to thank them all.
- Duktape: The engine that powers sjs. This project would not have been possible without Duktape. :hearteyes:
- Nodejs: World's most well known JavaScript runtime, definitely an inspiration.
- libuv: A lot of the cross-platform code was borrowed from here.
- Dukluv: Another JavaScript runtime combining Duktape with libuv.
- CPython: Python's canonical interpreter was an inspiration, specially for the standard library components.