Awesome Open Source
Awesome Open Source
Sponsorship


stdlib logo




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

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.

License

See LICENSE.

Copyright

Copyright © 2016-2020. The Stdlib Authors.


Status

stability-experimental

Version

git tag NPM version Node.js version

Build

OS Build (master) Coverage (master) Build (develop) Coverage (develop)
Linux/OS X Linux/OS X build status (master) coverage (master) Linux/OS X build status (develop) coverage (develop)
Windows Windows build status (master) coverage (master) Windows build status (develop) coverage (develop)

Dependencies

Dependencies DevDependencies

Community

Chat


Acknowledgments

Build Infrastructure

Test and build infrastructure is generously provided by the following services:

Continuous Integration Service Logos

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
javascript (66,074
nodejs (3,452
library (1,199
node (896
js (466
statistics (303
math (188
node-js (151
mathematics (140
science (134
scientific-computing (103
utilities (98
utils (72
stats (70
standard (62
lib (21
scientific (14
stdlib (14

Find Open Source By Browsing 7,000 Topics Across 59 Categories