Furious.js is a scientific computing package for JavaScript that brings NumPy-like functionality to the browser and Node.js environments.
The tool addresses the need for efficient numerical computation in JavaScript by providing an n-dimensional array class with a programming interface modeled after NumPy. It solves the problem of slow computation in JavaScript by offering multiple computational backends: a pure JavaScript backend using Typed Arrays for universal compatibility, a Portable Native Client backend for acceleration in Chromium-based browsers, and a WebCL backend for Node.js environments. Computation runs asynchronously to avoid blocking the GUI, and the tool automatically detects and selects the optimal available backend.
Furious.js suits developers building scientific or numerical applications in JavaScript who need performance beyond what pure JavaScript can deliver. It works across all modern browsers and Node.js, making it appropriate for web-based scientific tools, data analysis applications, and computational tasks that would otherwise require server-side processing. The project is most valuable for teams already invested in the JavaScript ecosystem who want to avoid context-switching to Python or other languages for numerical work.
Development of the tool involves active maintenance of multiple complex backends and their integration. The project maintains comprehensive unit test coverage with publicly accessible test suites. Documentation is extensive, covering both the API and the intricate setup process required for different backends. The build system relies on Ninja and Protocol Buffers, reflecting the complexity of coordinating JavaScript, PNaCl, and WebCL compilation targets. Setup for full development requires managing dependencies across multiple native libraries and SDKs, indicating that the maintainers prioritize supporting advanced acceleration paths alongside the baseline JavaScript implementation.