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).
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.
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
.
sjs
to get a serverside SJS REPL.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).
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.