Skip to content

AlexxNica/stdlib

 
 

Repository files navigation

stdlib logo

stdlib

A standard library for JavaScript and Node.js.

Stdlib is a standard library for JavaScript and Node.js, with an emphasis on numeric computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. This is the GitHub repository of stdlib source code and documentation.

For help developing stdlib, see the development guide.

Features

  • An extensive collection of standard library mathematical functions.
  • Utilities for manipulating floating-point numbers and transforming data.
  • Packages for incremental computation of statistics over data streams.
  • Large collection of seedable pseudorandom number generators (PRNGs).
  • Native add-ons and WebAssembly interfaces for interfacing with BLAS libraries, with pure JavaScript fallbacks.
  • Sample datasets for testing and development.
  • String manipulation utilities.
  • A comprehensive assertion library.
  • A benchmark framework which outputs TAP.
  • A plot API.
  • REPL environment with integrated help and examples.
  • Backward compatibility to Node.js v0.10.
  • Rigorous testing against reference implementations.
  • Can be bundled using Browserify or Webpack for use within web browsers.
  • Extensive documentation and examples.
  • Commercial friendly license.

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)

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

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-2017. 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


Sponsors

Gold

stencila logo

About

Standard library for JavaScript and Node.js.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 88.8%
  • Julia 3.1%
  • Makefile 2.3%
  • C 1.4%
  • Python 1.2%
  • R 1.2%
  • Other 2.0%