Awesome JavaScript Data Science
A curated list of awesome libraries for doing data science in your browser or Node.js environment. That doesn’t just mean JavaScript - thanks to WebAssembly, many data science libraries from other languages are now available in the browser.
If you want to contribute to this list (please do), create a pull request.
Contents
- Environments
- Data Formats
- Data Munging
- Math and Statistics
- Machine learning
- Natural Language Processing
- Deep Learning
- Visualization
- Other languages
Environments
- HASH - Create and run multi-agent simulations in your browser.
- Observable - The magic notebook for Exploring Data.
- Runkit - A Node Playground in your Browser.
- Iodide - Lets you do data science entirely in your browser.
- Carbide - A Reactive JavaScript programming environment.
- Kaggle Notebooks - Run analyses on Google Cloud using Python or R.
- Starboard Notebooks - Interactive JavaScript notebooks in your browser with minimal setup.
Data Formats
- Papa Parse - Powerful, in-browser CSV parser.
- js-xlsx - Parser and writer for various spreadsheet formats.
- Apache Arrow - Enable big data systems to process and transfer data quickly.
Data Munging
- sql.js - SQLite compiled to JavaScript through Emscripten.
- Lodash - A modern JavaScript utility library delivering modularity, performance & extras.
- jq-web - The command-line JSON processor, compiled with emscripten and exposed as JavaScript library.
- datalib - A JavaScript data utility library.
- zebras - A data manipulation and analysis library written in JavaScript offering the convenience of pandas or R.
- Danfojs - Powerful JavaScript data analysis toolkit.
- duckdb-wasm - DuckDB compiled to WebAssembly, letting you run fast SQL queries locally in the browser or Node.js.
- Polars (WASM) - Polars, a lightning-fast DataFrame library in Rust, compiled to WebAssembly for use in JS environments.
Math and Statistics
- mathjs - An extensive math library for JavaScript and Node.js.
- bluemath - Math kernel in JavaScript.
- libRmath.js - JavaScript Pure Implementation of Statistical R “core” numerical libRmath.so.
- stdlib - A standard library for JavaScript, with an emphasis on numerical and scientific computing applications.
- Simple Statistics - Statistical methods in readable JavaScript for browsers, servers, and people.
- jStat - Perform advanced statistical operations.
- BigInteger.js - Is an arbitrary-length integer library for JavaScript.
- Fraction.js - Is a rational number library written in JavaScript.
- fermat.ts - Powerful mathematics and statistics library, containing everything from number theory to random numbers and linear algebra classes.
- Simple Statistics - A JavaScript implementation of descriptive, regression, and inference statistics.
Machine learning
- mljs - Machine learning tools in JavaScript.
- machinelearn.js - Machine Learning library for the web and Node.
- ONNX Runtime Web - Run ONNX models in browsers (via WebGL/WebAssembly) and Node.js.
Natural Language Processing
- Compromise - Modest natural-language processing.
- Natural - General natural language facilities for node.
- node-nlp - A Fork of Natural with many additional capabilities.
- sentiment - AFINN-based sentiment analysis for Node.js.
- compromise - Interprets and pre-parses English.
- wink - Open Source packages for NLP, ML and Statistics in Node JS to build production grade solutions.
- twitter-text-js - A JavaScript utility that provides text processing routines for Tweets.
- Knwl.js - Find Dates, Places, Times, and More. A .js library for parsing text for specific information.
- Talisman - A straightforward & modular NLP, machine learning & fuzzy matching library for JavaScript.
- Franc - Natural language detection.
- Underscore.string - Not actually an NLP library, but a useful toolkit for working with strings in JavaScript.
- transformers.js - Run Hugging Face Transformer models directly in JavaScript (browser or Node.js) using WebAssembly acceleration.
Deep Learning
- TensorFlow.js - TensorFlow.js is a library for developing and training ML models in JavaScript, and deploying in browser or on Node.js.
- ml5 - Friendly Machine Learning for the Web.
- WebDNN - Fastest DNN Execution Framework on Web Browser.
- brain.js - Neural networks in JavaScript.
- torch-js - An experimental port of the PyTorch API to JavaScript/TypeScript for Node.js (still in early development).
- wasm-torch - A WebAssembly port of PyTorch’s C++ backend, enabling inference in the browser or Node.
Visualization
- D3 - Data-driven documents.
- C3.js - D3-based reusable chart library.
- Vega - A Visualization Grammar.
- Plotly.js - General-purpose data visualization.
- Nivo - A rich set of dataviz components, built on top of the awesome d3 and Reactjs libraries.
- Chart.js - Simple yet flexible JavaScript charting for designers & developers.
- Sigmajs - A JavaScript library dedicated to graph drawing.
- Falcon - Interactive Visual Analysis for Big Data. Crossfilter millions of records without latencies.
- Apache ECharts - A powerful, highly customizable charting and visualization library, suitable for large datasets.
- Observable Plot - A high-level, experimental library for exploratory data visualization, from the creators of Observable.