Skip to content

Flusspferd/flusspferd

Repository files navigation

Flusspferd
==========

Javascript bindings for C++, a Javascript interpreter and shell, and a
Javascript/C++ module system. Also, Flusspferd includes a few Javascript classes
and modules: binary blobs, SQLite 3, GMP and others (most of these do not have
to be installed).

It supports Spidermonkey as its backend, and possibly support for other engines
will be added later.

Flusspferd is licensed under the MIT license (open source).

See http://flusspferd.org/ for more information.

Requirements
------------

- Linux or Mac OS X or another POSIX system
- Spidermonkey 1.8.1+ (NOT 1.8.0)
- Boost 1.40+
- cmake 2.6+ (Build system)
- iconv support
- A reasonably modern and C++-compliant compiler. If your compiler is too old,
  then you're on your own. Sorry, but we don't intend to spend our unpaid time
  writing work-arounds for broken compilers.

Optionally:
- libedit (BSD)
- libxml2 2.6+ (for the XML plugin)
- SQLite3 3.4+(for the SQLite3 plugin)
- cURL (for the cURL plugin)
- GMP (for the GMP plugin)

Building & installing Flusspferd
--------------------------------

You can build Flusspferd (thanks to our wrappers) with

$ ./configure && make && sudo make install

as you probably are accustomed to. You might have to pass some parameters to
./configure:

  -DBOOST_ROOT=/path/to/boost
  -DSPIDERMONKEY_ROOT=/path/to/spidermonkey
  -DLINE_EDITOR=readline (if you want to use GNU/readline instead of editline)

These parameters are passed directly to cmake, i.e. you can also pass other
parameters that cmake understands.

You can generate the documentation with

$ ./util/docs.sh

The generated documentation is in ./build/html/.

Using Flusspferd
----------------

We have tutorials at http://flusspferd.org/docs/tutorials.html. Just a quick
peek:

> const GMP = require('gmp');
> f = GMP.Float(2);
2.0
> print(f.sqrt())
1.41421356237309504876
>

(The text after ">" in each line is input.)