Standard library for JavaScript and Node.js

stdlib (/ˈstændərd lɪb/ “standard lib”) is a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing applications. The library provides a collection of robust, high performance libraries for mathematics, statistics, data processing, streams, and more and includes many of the utilities you would expect from a standard library.

This is the GitHub repository of stdlib source code and documentation. For help developing stdlib, see the development guide.

Features

Demo showcasing special math functions

  • 35+ probability distributions, with support for evaluating probability density functions (PDFs), cumulative distribution functions (CDFs), quantiles, moments, and more.

    Demo showcasing probability distributions

  • 40+ seedable pseudorandom number generators (PRNGs).

    Demo showcasing PRNGs

  • 200+ general utilities for data transformation, functional programming, and asynchronous control flow.

    Demo showcasing general utilities

  • 200+ assertion utilities for data validation and feature detection.

    Demo showcasing assertion utilities

  • 50+ sample datasets for testing and development.

    Demo showcasing sample datasets

  • A plot API for data visualization and exploratory data analysis.

    Demo showcasing plot API

  • Native add-ons for interfacing with BLAS libraries, with pure JavaScript fallbacks.

    Demo showcasing BLAS APIs

  • A benchmark framework supporting TAP.

    Demo showcasing benchmark framework

  • REPL environment with integrated help and examples.

    Demo showcasing REPL environment

  • Can be bundled using Browserify, Webpack, and other bundlers for use in web browsers.

    Demo showcasing browser support

Resources

External Resources

Prerequisites

Running stdlib requires the following prerequisites:

  • Node.js: JavaScript runtime (version >= 0.10)
  • npm: package manager (version > 2.7.0; if Node < 1.0.0, version > 2.7.0 and < 4.0.0; if Node < 6.0.0, version > 2.7.0 and < 6.0.0)

Most functionality in stdlib is implemented exclusively in JavaScript; however, some implementations try to capture performance benefits by using native bindings and/or WebAssembly. While not required to run stdlib, as every stdlib implementation has a JavaScript fallback, the following dependencies are required for building native add-ons, including linking to BLAS and LAPACK libraries:

  • GNU make: development utility and task runner
  • GNU bash: an sh-compatible shell
  • gcc & g++ or Clang: C/C++ compilation and linking (g++ version >= 4.8; clang version >= 3.5, Xcode version >=8.3.1 on OS X)
  • gfortran: Fortran compilation and linking (version >= 4.8)

While not required to run stdlib, the following dependencies are required for automatically downloading external libraries:

  • curl, wget, or fetch (FreeBSD): utilities for downloading remote resources

The following external libraries can be automatically downloaded and compiled from source using make:

  • OpenBLAS: optimized BLAS library
  • Electron: framework for cross-platform desktop applications

Installation

To install as a library or application dependency,

$ npm install @stdlib/stdlib

Once installed, stdlib packages can be individually required/imported to minimize load times and decrease bundle sizes. For example,

var dswap = require( '@stdlib/blas/base/dswap' );

To install globally for use as a command-line utility,

$ npm install -g @stdlib/stdlib

which will expose the stdlib command. For example, to see available sub-commands

$ stdlib help

and to run the REPL

$ stdlib repl

For distributable bundles for use in browser environments or as shared (“vendored”) libraries in server environments, see the dist directory and associated guide.

Otherwise, to install as a system library, follow the download, configuration, and installation instructions as described in the development guide.


Contributing

See the contributing guidelines.


Download Details:

Author: stdlib-js

Demo: https://stdlib.io/

Source Code: https://github.com/stdlib-js/stdlib

#nodejs #javascript #node

Standard library for JavaScript and Node.js
14.80 GEEK