Languages

One model, several runtimes, and a referee that keeps them identical.

The skaters methodology is also described in the language of football: the tiki-taka page.

Every implementation is verified against the Python reference by a parity suite: the same fixed series through every scenario, with roughly 100,000 distributional probe values required to agree to 1e-6 before anything ships. A model trained in one language resumes bit-compatibly in another; the state is pure data.

Python (reference)

pip install skaters

Pure standard library, no dependencies. The reference implementation: the parity vectors are generated here, the benchmarks and papers run here, and features land here first.

An opt-in accelerated backend, skaters-fast (a PyO3 skin over the Rust core, pip install skaters[fast]), runs the identical laplace model at about 20x the per-step rate with the same bits on every platform.

JavaScript

npm install skaters

Zero-dependency ES modules covering the whole library. Runs in the browser (the demos are this build) and in Node; parity is enforced at 105,000+ values on every test run, alongside adversarial release gates shared with Python.

R

install.packages("skaters", repos = "https://microprediction.r-universe.dev")

Pure R, covering the whole library including laplace, the adaptive search engine, and the covariance estimators, at 105,798 parity values, with adversarial gates, exact checkpoint-resume contracts, and a clean R CMD check. Developed at microprediction/skaters-r; CRAN submission is planned once the surface and documentation settle.

Rust core and the fast backend

A Rust implementation of the whole composition lives in the main repository (rust/), lockstep-gated beside the JS twin so a numerics change cannot merge without both mirrors. Its mathematics is portable (identical bits on x86, ARM, and WebAssembly, enforced by a cross-platform digest job in CI), and it steps laplace at about 14 microseconds per observation. For Python users it ships as the opt-in skaters[fast] backend: same interface, roughly 20x the step rate, bit-exact checkpoint resume, with pure Python remaining the reference and the default.

Julia

Full library coverage at 105,798 parity values, with the adversarial gates and exact serialize-resume contracts, developed at microprediction/Skaters.jl. General-registry registration will follow once the surface settles. Further languages arrive as bindings to the Rust core rather than rewrites, with the same vectors as the referee throughout.

Updated 2026-07-13. The parity harness lives in parity/ of the main repository; each port carries its copy of the vectors and its own runner.