Furious.js is a scientific computing package for JavaScript. Furious.js features:
- Provides n-dimensional array (NDArray) class
- Programming interface similar to NumPy
- Works with all modern browsers and Node.js
- Accelerates computation on Portable Native Client (PNaCl) and WebCL
- Computes asynchronously, without stalling the GUI
- Functionality covered with unit tests (Try it!)
- Comes with extensive documentation
Currently Furious.js provides three computational backends:
- JavaScript backend that works in all modern JS engines (Typed Array support required).
- Portable Native Client that works in Google Chrome and other Chromium-based browsers.
- WebCL backend that can be used with Node.js (via node-webcl) and WebKit-WebCL.
Normally Furious.js would automatically detect the optimal backend, but it is possible to specify it manually.
- Windows, Linux, or OS X operating systems.
- Python
2.x
(we recommend to use the latest2.7
release). - Ninja build system. Add the directory with
ninja
(orninja.exe
) executable to thePATH
environment variable. Add themisc
directory withninja_syntax.py
to thePYTHONPATH
environment variable. - Protocol Buffers compiler. Add the directory with
protoc
executable to thePATH
environment variable. - Native Client SDK. Use the
naclsdk
/naclsdk.bat
script to install one of the Pepper toolchains. For development, we recommend to usepepper_canary
toolchain. For deployment, the current stable toolchain is recommended. Make an environment variableNACL_SDK_ROOT
point to the toolchain directory (e.g.C:/naclsdk/pepper_canary
if you usepepper_canary
toolchain and the Native Client SDK is unpacked toC:/naclsdk
) - Node.js and Node Package Manager (
npm
).
If you intend to develop Furious.js, we recommend that you fork the repository. Then clone your fork with
git clone https://github.com/<GITHUB-USERNAME>/furious.js.git
grunt
python configure.py
ninja