Skip to content

Repository files navigation

plskit

crates.io PyPI CI License: GPL-3.0-or-later

Cross-language Partial Least Squares with modern inference: canonical percentile CIs, split_exact, and split_nb tests.

Wrappers

Language Package Status
Rust cargo add plskit available — see plskit-rs/
Python pip install plskit available — see plskit-py/
R — planned
Julia — planned

Installation, examples, and language-specific notes live in each wrapper's README.

A 30-second look

import plskit

model = plskit.pls1_fit(X, y, k=3, seed=42)
sig   = plskit.pls1_confirmatory_test(
    X, y, k=3, method="split_nb", args={"n_splits": 50}, seed=42,
)
sig.pvalue, sig.statistic

Why plskit?

  • Modern inference is canonical. Procrustes-aligned percentile CIs, split_exact, and split_nb are the default.
  • One Rust engine, identical results across wrappers. All numerical computation lives in plskit-rs. Python (and the forthcoming R and Julia wrappers) call into it via FFI, so a fixed (version, seed, X, y) reproduces within a bit-near tolerance on every supported platform.

Repository layout

plskit/
├── plskit-rs/     Rust crate — canonical implementation
├── plskit-py/     Python wrapper
├── plskit-r/      R wrapper (planned)
├── plskit-jl/     Julia wrapper (planned)
└── testdata/      Shared reference corpus, regenerated from the Rust core

Monorepo and versioning

This is the single repository for the engine and every wrapper. The Rust engine and each language wrapper carry their own version number, and the same version number always means the same features — plskit-rs 0.5.0 and plskit (Python) 0.5.0 ship the same API. The Python, R, or Julia version may lag behind the Rust engine while its surface is being built out, but it can never run ahead of it. Releases use vX.Y.Z for the engine and vX.Y.Z-py / -r / -jl for the wrappers. File pull requests and issues here.

API wiring (function names, argument names, result fields) is stable across versions. Numerical reproducibility requires pinning the version: changes to defaults, algorithms, or implementation details may shift outputs between releases.

Citation

Lenartowicz, P., Plisiecki, H. (2026). (Under Review).

License

GPL-3.0-or-later. See LICENSE.

About

No description, website, or topics provided.

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages