Oni Apollo - Multi-Platform StratifiedJS Implementation
Oni Apollo is a StratifiedJS implementation
- a supporting set of modules. It runs server-side (based on NodeJS) as well as client-side (cross-browser).
For an overview see onilabs.com/apollo.
Please post questions to the Apollo Google Group.
- Client-side cross-browser StratifiedJS runtime.
- ~15kB gzipped, MIT-licensed.
- For more information please read the docs at onilabs.com/apollo.
oni-apollo-node.js, 'apollo' executable
- Server-side StratifiedJS runtime for NodeJS.
- If you've got NodeJS installed, just run
apolloto get a serverside SJS REPL.
- See also this Apollo Google Group post
- A simple web server
- 'Oni Apollo Standard Module Library'
- All MIT-licensed.
- Runs server-side or client-side.
- Documentation at onilabs.com/modules.
- build tools and source code from which oni-apollo.js and oni-apollo-node.js are assembled.
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-apollo tool to reassemble oni-apollo.js and oni-apollo-node.js. The build process should work on most unixy environments out of the box (in particular it requires CPP - the C preprocessor).
How to run/install
No need to install anything.
For server-side use, you can just execute the
(provided you have nodejs installed).
Alternatively you can install with npm (see the package.json script).
For client-side use, just include the oni-apollo.js file in your html, as described at onilabs.com/apollo.
Considerations for client-side use
Note that, by default, if you load standard library modules using code such as
var http = require('apollo:http');
the module will be requested from
This location can only be inferred if you load oni-apollo.js in the
'normal' way. If you rename oni-apollo.js to something else, or you
don't load it through a <script> tag, you'll need to manually
configure the 'apollo' hub before you can make calls such as
To (re-)configure the 'apollo hub', you can use code such as this:
require.hubs.unshift( ["apollo:", "http://code.mydomain.com/apollo-mirror/modules/"] ]); // all modules addressed as 'apollo:' will now be loaded from the // location above.
Note that many browsers cannot load modules over the
protocol. You can use
rocket to serve up the apollo directory
locally. Alternatively, you can serve oni-apollo.js and the modules/
directory with a different web server, or load oni-apollo.js &
modules/ from http://code.onilabs.com/ as described at