Travis-CI ::
erlang_js is a linked-in driver, API, and OTP application that
embeds Mozilla’s Spidermonkey Javascript Virtual Machine in
Erlang. Originally created to facilitate usage of Riak’s MapReduce
by non-Erlang programmers, it supports multiple concurrent
Javascript VMs, runtime evaluation of Javascript code, and
invocation of Javascript functions.
erlang_js builds and executes only on Unix-based platforms,
including Linux, Mac OS/X, and Solaris. It includes version 1.8.0
of Spidermonkey and Douglas Crockford’s json2.js JSON
parser. More information about the features available to Javascript
inside erlang_js are detailed on the Mozilla Developer Center.
You must have Erlang/OTP R13B04 or later and a GNU-style build
system to compile and run erlang_js.
git clone git://github.com/basho/erlang_js.git
make all testStart up an Erlang shell with the path to erlang_js included.
erl -pa path/to/erlang_js/ebin -boot start_saslStart the erlang_js application and create a Javascript VM.
1> application:start(erlang_js).
=PROGRESS REPORT==== 17-Feb-2011::11:31:51 ===
supervisor: {local,erlang_js_sup}
started: [{pid,<0.46.0>},
{name,cache},
{mfargs,{js_cache,start_link,[]}},
{restart_type,permanent},
{shutdown,2000},
{child_type,worker}]
=PROGRESS REPORT==== 17-Feb-2011::11:31:51 ===
application: erlang_js
started_at: nonode@nohost
ok
2> {ok, JS} = js_driver:new().Now you can evaluate Javascript expressions and call Javascript functions.
3> js:define(JS, <<"var addOne = function(a){ return a + 1; }">>).
ok
4> js:call(JS, <<"addOne">>, [3]).
{ok,4}Documentation about the API is extensive and can be generated by
edoc.
$ make docs
$ open docs/index.htmlWe encourage contributions to erlang_js from the community.
- Fork the
erlang_jsrepository on Github. - Clone your fork or add the remote if you already have a clone of the repository.
git clone [email protected]:yourusername/erlang_js.git
# or
git remote add mine [email protected]:yourusername/erlang_js.git- Create a topic branch for your change.
git checkout -b some-topic-branch- Make your change and commit. Use a clear and descriptive commit message, spanning multiple lines if detailed explanation is needed.
- Push to your fork of the repository and then send a pull-request through Github.
git push mine some-topic-branch- A Basho engineer or community maintainer will review your patch and merge it into the main repository or send you feedback.
