Installation¶
nirs4all-lite ships one aggregate surface across five host languages. Each
binding installs through that language’s native registry and delegates numerical,
parsing, and dataset work to the upstream packages. Install only the upstream
extras you need — the aggregate itself adds no engines.
Note
nirs4all-datasets is external and optional everywhere. It is never bundled
into the default aggregate; opt in explicitly per binding (see each section
below).
Python¶
Distribution name nirs4all-lite, imported as nirs4all_lite.
pip install nirs4all-lite
The base install pulls in only PyYAML. The upstream engines are optional
extras, so you choose what to bring in:
# Individual upstreams
pip install "nirs4all-lite[methods]" # nirs4all-methods + scikit-learn
pip install "nirs4all-lite[formats]" # nirs4all-formats
pip install "nirs4all-lite[io]" # nirs4all-io
pip install "nirs4all-lite[dag-ml]" # dag-ml
pip install "nirs4all-lite[dag-ml-data]"
# Bundled aggregate = methods + formats + io + dag-ml + dag-ml-data
pip install "nirs4all-lite[all]"
# Datasets is excluded from [all]; opt in explicitly
pip install "nirs4all-lite[datasets]"
# Everything, including the optional datasets catalog
pip install "nirs4all-lite[everything]"
Requires Python 3.11 or newer.
Rust¶
Crate name nirs4all (published from bindings/rust/nirs4all).
cargo add nirs4all
The bundled aggregate is methods + formats + io + dag-ml + dag-ml-data. The
nirs4all-datasets surface is gated behind an off-by-default Cargo feature that
only un-gates the datasets API (it pulls in no extra compiled dependency):
[dependencies]
nirs4all = { version = "0.1", features = ["datasets"] }
JavaScript / WASM¶
npm package name nirs4all (published from bindings/wasm).
npm install nirs4all
It exposes typed ESM APIs and browser-safe WASM loaders, and delegates execution
to the nirs4all-methods WASM artifact. nirs4all-web consumes this package; UI
code does not live here.
R¶
Package name nirs4all (built from bindings/r). The upstream ecosystem
bindings are not on mainstream CRAN yet, so the natural channel today is
R-universe:
install.packages(
"nirs4all",
repos = c(
"https://gbeurier.r-universe.dev",
"https://cloud.r-project.org"
)
)
It is a pure-R package (no compilation) that Imports only jsonlite and
yaml. The upstream bindings (nirs4allformats, nirs4allio,
nirs4alldatasets, n4m, dagmldata) are Suggests, resolved from R-universe
via Additional_repositories.
MATLAB / Octave¶
The MATLAB/Octave binding ships the +nirs4all namespace as a zip attached to
the GitHub Release (nirs4all-matlab-octave-<version>.zip). Unzip it and add the
directory to your path:
addpath('/path/to/nirs4all-matlab-octave')
The public subset is Octave-safe. Strict-parity execution additionally requires
the nirs4all-methods +pls4all MEX shims on the MATLAB/Octave path.