Skookum JS: a JavaScript runtime
C JavaScript C++ Other
Latest commit bd4acdd Jan 19, 2017 @saghul core: set version to 17.0.0 (alpha)
Switch over to calendar versioning.
Permalink
Failed to load latest commit information.
docs
examples
include/sjs
modules
src
test
tools
.editorconfig
.gitignore
.travis.yml
AUTHORS
CHANGELOG.md
CMakeLists.txt
CONTRIBUTING.md
LICENSE
Makefile
README.md

README.md

sjs

Overview

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?".

Features

  • 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

Demo

asciicast

Documentation

Check it out here.

Documentation Status

Building

Skookum JS currently supports Linux and OSX. See compilation instructions here.

Build Status

License

Check the LICENSE file. Hint: it's MIT.

Author

Saúl Ibarra Corretgé (@saghul)

Contributing

Please see CONTRIBUTING.

Acknowledgements

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.