The definitive source of the best
JavaScript libraries, frameworks, and plugins.

  • ×


    Oni StratifiedJS (previously Apollo)
    Filed under 

    • 🔾26%Overall
    • 231
    • 9.1 days
    • 🕩22
    • 👥2

    Oni StratifiedJS - Multi-Platform Stratified JavaScript Implementation

    Oni StratifiedJS (previously known as "Oni Apollo") is the reference StratifiedJS Language implementation + a supporting set of modules. It runs server-side (based on NodeJS) as well as client-side (cross-browser).

    How to run/install

    For server-side use, you can just execute the sjs executable (provided you have nodejs installed).

    For client-side use, include stratified.js in your html and write sjs code in <script type='text/sjs'> tags.

    For a complete sjs web app stack, check out conductance.

    Prebuilt packages:

    Users of the bower or npm package managers can install the stratifiedjs package using either of these tools. npm users should install globally (npm install -g) to add the sjs binary to your $PATH.

    What's in this repository:


    • Client-side cross-browser StratifiedJS runtime.
    • MIT-licensed.
    • For more information please read the docs at

    stratified-node.js, 'sjs' executable

    • Server-side StratifiedJS runtime for NodeJS.
    • If you've got NodeJS installed, just run sjs to get a serverside SJS REPL.
    • See also this StratifiedJS Google Group post


    • 'Oni StratifiedJS Standard Module Library'
    • All MIT-licensed.
    • Runs server-side or client-side.
    • Documentation at


    • build tools and source code from which stratified.js and stratified-node.js are assembled.


    • StratifiedJS syntax highlighting support for emacs (GPL).


    • StratifiedJS syntax highlighting support for vim (Vim licence, GPL compatible).

    How to build

    Everything is already pre-built.

    No need to compile anything unless you change something in the src/ directory. In that case, you can use the src/build/make-sjs tool to reassemble stratified.js and stratified-node.js. The build process should work on most unixy environments out of the box (in particular it requires CPP - the C preprocessor).

    Considerations for client-side use

    Note that, by default, if you load standard library modules using code such as

    var http = require('sjs:http');

    the module will be requested from


    This location can only be inferred if you load stratified.js in the 'normal' way. If you rename stratified.js to something else, or you don't load it through a <script> tag, you'll need to manually configure the 'sjs' hub before you can make calls such as require('sjs:http').

    To (re-)configure the 'sjs hub', you can use code such as this:

    // all modules addressed as 'sjs:' will now be loaded from the
    // location above.

    Note that many browsers cannot load modules over the file: protocol. You can use a standard web server to serve stratified.js and the modules/ directory, or load stratified.js & modules/ from as described at

    Show All