Permalink
Browse files

Update/rewrite README.

  • Loading branch information...
1 parent ca95844 commit 3567c6dbbbbd292e4d13fbe22a4a44c38b97e3a5 @seancribbs seancribbs committed with dizzyd Feb 17, 2011
Showing with 96 additions and 11 deletions.
  1. +1 −1 .gitignore
  2. +0 −10 README
  3. +95 −0 README.org
View
@@ -4,5 +4,5 @@
c_src/js
c_src/system
c_src/nsprpub
-
+docs
View
10 README
@@ -1,10 +0,0 @@
-erlang_js has only been tested on Unix-based platforms (Linux, OS X, and Solaris). Please do not try
-to compile and/or use erlang_js on Windows. It will not work.
-
-We've tried to keep the compile process simple and fast. You will need the CVS command-line client
-installed in order for the compile to work. To compile erlang_js issue the command 'make' in a
-terminal. The build will download and build nspr and SpiderMonkey. It will also build the
-linked-in driver, spidermonkey_drv, and the Erlang source.
-
-You can test the freshly build code via 'make test' which should report all tests passed if the
-build was successful.
View
@@ -0,0 +1,95 @@
+* erlang_js
+** Overview
+ =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 [[https://developer.mozilla.org/en/JavaScript/Reference][Mozilla Developer Center]].
+
+** Quick Start
+ You must have [[http://erlang.org/download.html][Erlang/OTP R13B04]] or later and a GNU-style build
+ system to compile and run =erlang_js=.
+
+#+BEGIN_SRC shell
+git clone git://github.com/basho/erlang_js.git
+make all test
+#+END_SRC
+
+ Start up an Erlang shell with the path to =erlang_js= included.
+
+#+BEGIN_SRC shell
+erl -pa path/to/erlang_js/ebin -boot start_sasl
+#+END_SRC
+
+ Start the =erlang_js= application and create a Javascript VM.
+#+BEGIN_SRC erlang
+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().
+#+END_SRC
+
+ Now you can evaluate Javascript expressions and call Javascript
+ functions.
+
+#+BEGIN_SRC erlang
+3> js:define(JS, <<"var addOne = function(a){ return a + 1; }">>).
+ok
+4> js:call(JS, <<"addOne">>, [3]).
+{ok,4}
+#+END_SRC
+
+** Documentation
+ Documentation about the API is extensive and can be generated by
+ =edoc=.
+
+#+BEGIN_SRC shell
+$ make docs
+$ open docs/index.html
+#+END_SRC
+
+** Contributing
+ We encourage contributions to =erlang_js= from the community.
+
+ 1) Fork the =erlang_js= repository on [[https://github.com/basho/erlang_js][Github]].
+ 2) Clone your fork or add the remote if you already have a clone of
+ the repository.
+#+BEGIN_SRC shell
+git clone git@github.com:yourusername/erlang_js.git
+# or
+git remote add mine git@github.com:yourusername/erlang_js.git
+#+END_SRC
+ 3) Create a topic branch for your change.
+#+BEGIN_SRC shell
+git checkout -b some-topic-branch
+#+END_SRC
+ 4) Make your change and commit. Use a clear and descriptive commit
+ message, spanning multiple lines if detailed explanation is
+ needed.
+ 5) Push to your fork of the repository and then send a pull-request
+ through Github.
+#+BEGIN_SRC shell
+git push mine some-topic-branch
+#+END_SRC
+ 6) A Basho engineer or community maintainer will review your patch
+ and merge it into the main repository or send you feedback.
+

0 comments on commit 3567c6d

Please sign in to comment.