The ml.js organization on GitHub was created in October 2014 in the group of Luc Patiny at EPFL. It provides machine learning, statistics and numerical analysis in JavaScript, for the browser and Node.js: matrices and linear algebra, regression, clustering, classification, dimensionality reduction, and signal and spectra processing.
It contains 112 public repositories and 118 packages published on npm, downloaded 48,082,689 times in September 2026 and 431,139,748 times in the last 12 months (October 2025 to September 2026). Many of these packages are currently maintained by Zakodium Sàrl.
| Package | Sep 2026 | 12 months | ||
|---|---|---|---|---|
| 1 | ml-matrix | 6,767,495 | 57,844,526 | Matrix manipulation and computation library |
| 2 | ml-array-max | 6,522,046 | 54,761,511 | Get the maximum value in an array |
| 3 | ml-array-min | 6,520,920 | 54,738,609 | Get the minimum value in an array |
| 4 | ml-array-rescale | 6,520,085 | 54,701,533 | Rescale an array into a range |
| 5 | ml-xsadd | 3,266,968 | 26,496,965 | JavaScript implementation of the XORSHIFT-ADD (XSadd) pseudo random number generator |
| 6 | ml-spectra-processing | 2,673,469 | 21,006,256 | Various method to process spectra |
| 7 | linear-sum-assignment | 2,419,351 | 19,557,782 | it performs a linear sum assignment even if the cost matrix is rectangular. |
| 8 | ml-distance-euclidean | 1,719,205 | 17,617,547 | Compute the euclidean distance between two vectors |
| 9 | ml-distance | 785,334 | 9,822,203 | Distance and similarity functions to compare vectors |
| 10 | ml-tree-similarity | 745,870 | 9,788,816 | Compares two spectra using a tree similarity |
|
Open-source tools for chemistry, in JavaScript 176 npm packages, 107 million downloads in the last 12 months |
Image processing and analysis in JavaScript 13 npm packages, 684 million downloads in the last 12 months |
Updated on 2026-10-30 from the GitHub and npm APIs. Repositories are the public ones of mljs, forks excluded. Downloads are those reported by npm for whole calendar months.