JavaScripting

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


  • ×

    Stratifiedjs

    Oni StratifiedJS (previously Apollo)
    Filed under 

    • 🔾26%Overall
    • 231
    • 8.9 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:

    stratified.js

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

    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

    modules/

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

    src/

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

    emacs/

    • StratifiedJS syntax highlighting support for emacs (GPL).

    vim/

    • 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

    LOCATION_WHERE_STRATIFIED_JS_WAS_LOADED_FROM/modules
    

    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:

    require.hubs.unshift(
      ["sjs:",
       "http://code.mydomain.com/sjs-mirror/modules/"]
      ]);
    // 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 http://code.onilabs.com/ as described at onilabs.com/stratifiedjs.

    Show All