Skip to main content

gamrs

Generalised Additive Models in Rust — clean-room reimplementation built on six composable trait layers (Basis, BasisTransform, Loss/Link/VarianceFn, InnerSolver, ScoreDerivatives, OuterSolver). Designed for parity with R's mgcv.

Status: beta (v0.14). Fastest where wall time matters — large n and high basis dimension (up to ~2.3× at n=1M and ~15× at k=50 vs mgcv_rust 0.23), competitive-to-slower on tiny fits, with a known multi-smooth-NegBin gap; see Performance for the honest breakdown. mgcv R-parity on µ across all ten families. Multi-smooth additive (y ~ s(x0) + s(x1)), n-margin tensor products (te(x0, x1, …) / ti(…)) and thin-plate splines (s(x0, x1, bs="tp")) all ship. NegBin and Tweedie fit multi-smooth, with Tweedie offering both profile-p (tw()) and fixed-p (Tweedie(p)).

Install

pip install gamrs            # base wheel
pip install gamrs[quantile]  # + scipy for SHASH-calibrated quantile fits

Quickstart

from gamrs import Gam, CrTerm, TeTerm

# Single 1-D smooth, Gaussian
g = Gam(family="gaussian").fit(X, y)
mu  = g.predict(X)
mu, lo, hi = g.predict_ci(X, level=0.95)

# Multi-smooth additive
g = Gam(terms=[CrTerm("x0", k=10), CrTerm("x1", k=15)]).fit(df, df["y"])

# Tensor product
g = Gam(terms=[TeTerm(cols=("x0", "x1"), k=(5, 5))]).fit(df, df["y"])

# Large-n GLM — switch to the bam()-style fREML optimiser. Ported to the
# GLM envelope driver only; elsewhere it warns and fits on REML instead.
g = Gam(family="poisson", method="fREML").fit(X_big, y_big)

Full walkthrough: docs/quickstart.md. Optimiser & large-n notes: docs/perf.md.

Families

All ten families land 1-D parity against mgcv:

Family Link Inner solver Outer optimiser Parity (µ rel-err)
Gaussian identity one-Cholesky 1-D Newton ~3e-6
Bernoulli logit PIRLS 1-D Newton ~1e-3
Poisson log PIRLS 1-D Newton ~8e-5
QuasiPoisson log PIRLS 1-D Newton (prof φ) ~2e-4
QuasiBinomial logit PIRLS 1-D Newton (prof φ) ~7e-5
Gamma log PIRLS 1-D Newton (prof φ) ~2e-2
InverseGaussian log PIRLS 1-D Newton (prof φ) ~3e-4
NegBin log PIRLS ρ-Newton + profile-θ ~9e-7
Tweedie log PIRLS 3-D joint Newton ~5e-3
TDist (scat) identity PIRLS 3-D joint Newton ~4e-4
Ocat logit gam.fit5 joint β + threshold smoke
Quantile (ELF) identity Armijo BT ρ-Newton (per term) qgam OOS ~1.00×

Multi-smooth (s(x0) + s(x1) + …) ships with mgcv R parity tests for Gaussian / Bernoulli / Poisson / QuasiPoisson / QuasiBinomial / Gamma / InvGauss / NegBin / Tweedie / scat. scat / TDist multi-smooth now has mgcv reference parity tests too — as of 0.14.0, 2-D µ rel-err ~5.5e-6 and 3-D ~8.3e-5, with σ̂² matching mgcv to ~0.1% (tests/parity_additive_scat.rs, scripts/r/gen_scat_multismooth_fixtures.R). Those bounds tightened 8-16× in 0.13.0 when a spurious rank adjustment came out of scat's REML score, and another 30-200× in 0.14.0 when scat's REML criterion was corrected to mgcv's observed-curvature log|H|; the same release adds tests/parity_scat_tf9963.rs, a saturated-basis lock (5 distinct x against k = 5, the geometry that exposed the defect) against all three mgcv arms (gam+REML, bam+REML, bam+fREML). Quantile/ELF now fits multi-smooth additive too (y ~ s(x0) + s(x1) + … via the terms= arg of fit_quantile): on a 2-D additive heteroskedastic split its out-of-sample pinball loss matches qgam to within ±0.6% at τ ∈ {0.1, 0.5, 0.9} (scripts/r/gen_quantile_multismooth_fixture.R, test_parity_multismooth.py::test_additive_quantile_oos_parity).

For a coherent set of quantiles, fit_quantile_lss fits the conditional distribution by its location μ(x) and scale σ(x) and derives every quantile as q_τ(x) = μ(x) + σ(x)·z_τ — the mgcv gaulss/shash view. One fit serves all τ, the bands never cross, and shape="shash" captures skew/kurtosis. Matches mgcv gaulss OOS pinball to within ~1% on a heteroskedastic 2-D split (scripts/r/gen_quantile_lss_fixture.R).

GAMLSS — Gaussian location-scale (gaulss)

fit_gaulss(X, y, mu_terms=…, sigma_terms=…) is the first GAMLSS (multi-linear-predictor) family: it fits y ~ N(μ(x), σ(x)²) with smooth μ(x) and σ(x) jointly. Because the Gaussian location-scale Fisher information is block-diagonal (μ ⟂ log σ), the joint MLE is an orthogonal alternation of two single-predictor weighted-Gaussian REML fits — reusing the existing fit stack rather than a dense block-Newton. One fit gives every quantile (q_τ = μ + σ·Φ⁻¹(τ), no crossing). It recovers mgcv gaulss's μ̂/σ̂ to RMSE ~3e-4 / ~1e-3 and its OOS pinball to ~0.05%, at ~70× the speed (n=800). Unlike the two-stage fit_quantile_lss, μ is reweighted by 1/σ²(x) each pass — the joint-MLE efficiency gain. This is the seam for the wider GAMLSS class (shash, gevlss): non-orthogonal families extend the same alternation.

GAMLSS — sinh-arcsinh (shash)

fit_shash(X, y, mu_terms=…, tau_terms=…, eps_terms=…, phi_terms=…) fits the first non-orthogonal GAMLSS family — all four sinh-arcsinh parameters as smooths, jointly: location μ(x), log-scale τ(x) (σ = exp τ), skewness ε(x), and log-kurtosis φ(x). Because shash's Fisher information couples the predictors (unlike gaulss), β for all four is solved together by a dense penalised block-Newton, under outer REML/LAML with an analytic gradient (third derivatives → d log|Hp|/dρ). One fit yields every quantile (predict_quantile, the R .shashQf inverse-CDF) plus predict_params → (μ, σ, ε, δ). It recovers mgcv gam(…, family=shash, bs="cr") to ~1e-6 (η, smoothing params, EDF, quantiles) and fits Gaussian, skewed, and heavy-tailed data alike. Distinct from the two-stage fit_quantile_lss(shape="shash") (one global shape) — this is the genuine joint GAMLSS. (v1: one smooth term per predictor.) Term specs use the same form as fit_additive, e.g. mu_terms=[CrTerm(0, k=10)], tau_terms=[CrTerm(1, k=10)], eps_terms=[].

Multi-smooth Ocat now has an mgcv reference parity test (tests/parity_additive_scat.rs's ocat sibling in test_parity_multismooth.py::test_additive_ocat_parity, scripts/r/gen_ocat_multismooth_fixtures.R): on a well-posed noisy-latent DGP gamrs and mgcv ocat(R=4) both converge cleanly and agree on predict_proba to ~1.8e-3 mean abs / 98% class agreement.

v0.10 ports the full mgcv R outer-Newton stabilisation stack (smart θ-init from category frequencies, diagonal Hessian preconditioning, Gill-Murray-Wright eigen-fix, subset Newton, rank-deficient KKT convergence check). After the ports, single- and (well-posed) multi-smooth ocat converge cleanly. The residual converged_=False appears only on near-separable fixtures (noiseless quantile-cut categories) where the latent scale wants to blow up — the exact regime mgcv itself either converges to a degenerate θ≈181 solution or aborts with "inner loop 1; can't correct step size". There gamrs's θ∈(−3,3) bound keeps it stable (99% accuracy) and the conservative flag is correct. See ~/ObsidianVault/Projects/gamrs/gamrs - mgcv outer-Newton stabilisation techniques (port catalogue) 2026-06-03.md for the full port story.

Smooths

  • Single 1-D — s(x0) via CrTerm (cubic regression spline default).
  • Additive multi — s(x0) + s(x1) + s(x2).
  • Tensor product — te(x0, x1, …) via TeTerm, ti(…) via TiTerm, any n-margin.
  • Thin-plate — s(x0, x1, bs="tp") via TpsTerm.
  • Random effects — s(g, bs="re") via ReTerm.
  • Point constraint — s(x, pc=v) via CrTerm("x", pc=v) or term_pc_mapping={"x": v}: the smooth passes through zero at x = v and the intercept takes the level. Predictions, λ̂ and edf are unchanged — only the intercept-versus-smooth split moves, which is what a caller reading a partial curve sees. CR bases (cr, cr_stable) only.
  • Parametric (linear) — unsmoothed raw column via ParametricTerm or predictor_basis_map={"x": "parametric"} (alias "linear"). Use for 0/1 indicators, counts, or anything you want unpenalised. mgcv R's "pterms" block.

Performance

gamrs vs mgcv_rust 0.23.2, best-of-7 median wall time after 3 warmup iters (>1× = gamrs faster). Reproduce with scripts/bench_matters.py. Numbers below are an i7-8565U (8th-gen, AVX2); the ratios are same-box-comparable but absolute times differ on your hardware.

gamrs wins at scale. Single-smooth, k=20 — as n grows the constant-factor setup overhead amortises and gamrs pulls ahead:

family n=10K n=100K n=1M
Gaussian 0.58× 1.49× 2.27×
Poisson 0.24× 1.01× 1.89×
Bernoulli 0.39× 1.12× 1.84×

It also wins as the basis dimension k grows (Gaussian, n=2K): k=10 → 1.7×, k=20 → 4.0×, k=50 → 15×. (Those fits are <2ms — read them as above-the-noise ratios, not headline wall-time claims.)

Shape-aware families (n=2K, k=10):

family speedup note
Tweedie 1-D 1.93×
ocat 1-D 14.5× mgcv_rust's ocat path is slow by construction
ocat 2-D 0.69×
NegBin 1-D 0.64×
NegBin 2-D 0.06× multi-smooth profile-θ scaling gap (known)
scat 1-D 0.58× <2ms — sub-noise

Honest aggregate (16 above-20ms cells across all sweeps): gamrs is faster in 8 — median 0.89×, geomean 0.83×, range 0.06×–14.5×. The wins concentrate where wall time actually matters — large n, large k, and Tweedie/ocat. Tiny fits (<20ms) and multi-smooth NegBin still trail mgcv_rust; the NegBin multi-smooth slowdown is a known profile-θ scaling issue under investigation.

scat climbed from v0.10.0's 0.07× to v0.11's ~0.77× (at the 6K-row profiling fixture) via analytic gradient + Level-2 analytic Hessian + observed-W PIRLS + warm-start (v0.11.0) and broadcast-expression conversion + batched-h_diag matmul (v0.11.1). The residual gap is per-pair Hessian-assembly work at small p.

For GLM families at large n, set method="fREML" (mgcv R's bam() equivalent — Wood & Fasiolo 2017 Fellner-Schall multiplicative updates with single-step IRLS per outer iteration). The defaults are sensible at small/medium n; the perf guide covers when to switch. Fellner-Schall reached the GLM envelope driver only — on the gaussian closed-form path, the quantile path and the shape-parameter families (scat / negbin / tweedie / ocat), method="fREML" warns and fits on REML. Both optimise the same REML criterion and damped Newton is the stronger route to it, so the substitution costs nothing; it is warned about because until 0.13.0 it happened silently.

Parallel fits across threads

As of v0.11.7 the fit releases the GIL (PyO3 py.detach) for the entire solve, so independent Gam.fit(...) / fit_quantile(...) calls run truly concurrently on a ThreadPoolExecutor — no process pool, no pickling of inputs. When fanning many fits across a thread pool, set OPENBLAS_NUM_THREADS=1 so the BLAS backend doesn't oversubscribe cores against your own threads: on a 6K-row scat fit that turns the pre-0.11.7 0.58× (GIL-bound, serialised) into ~1.95× on 4 worker threads.

Rust API

use gamrs::{TermSpec, MarginKind, DesignStrategy};
use ndarray::Array2;

let x: Array2<f64> = /* (n, n_input_dims) */;
let y = /* Array1<f64> */;

let fit = gamrs::fit(gamrs::family::gaussian_identity(), x.view(), y.view(), None, 10)?;

let fit = gamrs::fit_with_design(
    gamrs::family::gaussian_identity(),
    DesignStrategy::Additive { terms: vec![
        TermSpec::Cr { col: 0, k: 10 },
        TermSpec::Cr { col: 1, k: 15 },
    ]},
    x.view(), y.view(), None,
)?;

let fit = gamrs::fit_with_design(
    gamrs::family::gaussian_identity(),
    DesignStrategy::Additive { terms: vec![
        TermSpec::Tensor { col_a: 0, col_b: 1, k_a: 5, k_b: 5,
                           bs_a: MarginKind::Cr, bs_b: MarginKind::Cr },
    ]},
    x.view(), y.view(), None,
)?;

let mu = fit.predict(x.view())?;

Python API

PyO3 bindings + numpy. sklearn-like surface: fit / predict / predict_ci / predict_diff / vcov_ / coef_ / lambda_ / edf_ / fit_stats_, plus serialize / deserialize and GamPredictor for inference-only deployment.

Architecture

Trait layering (src/traits.rs):

Layer 1   Basis              ←  CrBasis, RandomEffectsBasis, TensorProductBasis<A, B>
Layer 1.5 BasisTransform     ←  SumToZero, StableReparam
Layer 2   Loss/Link/Variance ←  10 families (see table above)
Layer 3   InnerSolver        ←  GaussianClosedFormInner, PirlsInner, GamFit5Inner, ArmijoInner
Layer 4   ScoreDerivatives   ←  EnvelopeScore, ShapeAwareEnvelopeScore
Layer 5   OuterSolver        ←  NewtonWithHalving, FellnerSchall
Layer 6   FittedGam          ←  predict, predict_ci, predict_diff, vcov, serialize

Outer optimisers (Newton, Fellner-Schall) and per-family tolerances are selected through Loss::outer_tuning() and Loss::allows_no_refresh(), so adding a family is a Loss impl, not a fork of the optimiser.

Versioning

Beta (0.14.x). The API is stabilising; minor bumps may carry breaking changes until the 1.0 surface is locked. All ten families plus Ocat and Quantile/ELF now fit multi-smooth additive designs.

License

MIT.

Metadata

Release files for gamrs 0.14.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gamrs 0.14.5
File Size Uploaded Provenance
gamrs-0.14.5.tar.gz 4.2 MB Without provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for gamrs 0.14.5
File
gamrs-0.14.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ x86-64 Details
gamrs-0.14.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details
gamrs-0.14.5-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
gamrs-0.14.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
gamrs-0.14.5-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
gamrs-0.14.5-cp314-cp314-macosx_10_13_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.13+ x86-64 Details
gamrs-0.14.5-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
gamrs-0.14.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
gamrs-0.14.5-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
gamrs-0.14.5-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
gamrs-0.14.5-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
gamrs-0.14.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
gamrs-0.14.5-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
gamrs-0.14.5-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
gamrs-0.14.5-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
gamrs-0.14.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
gamrs-0.14.5-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
gamrs-0.14.5-cp311-cp311-macosx_10_13_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.13+ x86-64 Details
gamrs-0.14.5-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
gamrs-0.14.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
gamrs-0.14.5-cp310-cp310-macosx_10_13_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.13+ x86-64 Details
gamrs-0.14.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
gamrs-0.14.5-cp39-cp39-macosx_10_13_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.13+ x86-64 Details

Total release size: 144.5 MB

Release files / gamrs-0.14.5.tar.gz

Download URL gamrs-0.14.5.tar.gz
Size 4.2 MB
Tags Source
SHA-256 checksum
How to use checksums
e3336ed33f5fc8e9c14ab8175fda9a3d4e1f95ce25ee35fa1ad1218a9276e1c4
BLAKE2b-256 checksum
How to use checksums
1a6af2f106005995f34ca4f7af77f3457e8b3d5308350a2d02d179b9d72b3868
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / gamrs-0.14.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL gamrs-0.14.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.7 MB
Tags Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
45d828e6bd71537bbc0fb66a3e966befa9cd51ba1652ef267ff6c108f556deaf
BLAKE2b-256 checksum
How to use checksums
71f95f758eec27de341f2169741b9c36527a0ac05d8d578c720ebb847ac48b92
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / gamrs-0.14.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL gamrs-0.14.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.7 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
06f81fc46fd6495855bd03c5162d0dab5e3432759834ec0458c05110fecb0c53
BLAKE2b-256 checksum
How to use checksums
58c9e6b65eb14a965982baa248bfea08f63541d74d6948ce5bed4f85161f170e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / gamrs-0.14.5-cp314-cp314-win_amd64.whl

Download URL gamrs-0.14.5-cp314-cp314-win_amd64.whl
Size 4.1 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
156691e7787db7487019c6526f6e516977eff0ae775a63698fad2846b797dc56
BLAKE2b-256 checksum
How to use checksums
d57a46f1f07a201aa683afade9620f93a812e9628f3ca01ead641d7a82668d38
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / gamrs-0.14.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL gamrs-0.14.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.8 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
2bb79051e8189e9db326e20013662beb914bfc8fccae820f9f4947de61b28b8b
BLAKE2b-256 checksum
How to use checksums
ea395627a2bd4e5cb2419372b0f3206a6b3b3e47392a3931a821da6495aa4c3b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / gamrs-0.14.5-cp314-cp314-macosx_11_0_arm64.whl

Download URL gamrs-0.14.5-cp314-cp314-macosx_11_0_arm64.whl
Size 5.6 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
27dfae274124bd0356c3b40f47f52e85f19e71b37613ac9f223f5aefe6873611
BLAKE2b-256 checksum
How to use checksums
1e6dd7c23d22ac6620620ba8afc43ed6e31498b602b23974c630b7d35c1e16ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / gamrs-0.14.5-cp314-cp314-macosx_10_13_x86_64.whl

Download URL gamrs-0.14.5-cp314-cp314-macosx_10_13_x86_64.whl
Size 7.3 MB
Tags CPython 3.14 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
8351b70a15a47ecfa0b163cb20e3cb086cd6a29c4357f77894ad1b30c48bc4a7
BLAKE2b-256 checksum
How to use checksums
0bffd3039ad8eb11448cf96ea4fc1ff11ebbd365ba3bd6867a7c13a2c97b9cc8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / gamrs-0.14.5-cp313-cp313-win_amd64.whl

Download URL gamrs-0.14.5-cp313-cp313-win_amd64.whl
Size 4.1 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
23910891e6375c4c17e0ab762ebd26a7e9615bdb8c8905b74ea42e04ecd1bdd6
BLAKE2b-256 checksum
How to use checksums
8c7862be2311858d84e3499cce93b52b81bdb9a37c20e9496b2101e4693ed562
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / gamrs-0.14.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL gamrs-0.14.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.7 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
7aadb0800a0d429cf88441a0473ae18c08cb1497a38ae666c37b0c7014d6b6c5
BLAKE2b-256 checksum
How to use checksums
e09b5acf581b11dbcdf66c3484e956d3b2cd369de34100a1076398ee648f54cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / gamrs-0.14.5-cp313-cp313-macosx_11_0_arm64.whl

Download URL gamrs-0.14.5-cp313-cp313-macosx_11_0_arm64.whl
Size 5.6 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
163164dc87a20005246d0815f7ea0f86aabc01ef815018ed4ebacfa6995e5388
BLAKE2b-256 checksum
How to use checksums
ea07e8247bba4739e04357fa1575e16628ff204fe508e10c96e3806e7f9bea29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / gamrs-0.14.5-cp313-cp313-macosx_10_13_x86_64.whl

Download URL gamrs-0.14.5-cp313-cp313-macosx_10_13_x86_64.whl
Size 7.3 MB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
58e51ed6bfeb95b4930bdf2df9477691eb0bf5e1e96bf7fab9c55241597e2093
BLAKE2b-256 checksum
How to use checksums
00e148425233a2f74a8ad91788622680d6d6e55eab84578502de80a7fd97ebe8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / gamrs-0.14.5-cp312-cp312-win_amd64.whl

Download URL gamrs-0.14.5-cp312-cp312-win_amd64.whl
Size 4.1 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
b6140913f14ebb88d47dcbec7a5ec49374d13be6c59f21495325d4896c0849ad
BLAKE2b-256 checksum
How to use checksums
539039ad6e1a5b63ebcb1522f3243ab62aa9ec3701c7e8eef84b82a92a460f12
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / gamrs-0.14.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL gamrs-0.14.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.7 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
14c926107b1cdbc610eb27d4b6d580aea39bf3f70eb964b667e55360135d83fa
BLAKE2b-256 checksum
How to use checksums
04c207b496bea5cc1f7686e74eb9a9a2d25ab4324157898b9977f6466a3328ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / gamrs-0.14.5-cp312-cp312-macosx_11_0_arm64.whl

Download URL gamrs-0.14.5-cp312-cp312-macosx_11_0_arm64.whl
Size 5.6 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e4d918ee287a0d208773265f5619b73ef5752b43da3ef8b5cd0e5b219723edd3
BLAKE2b-256 checksum
How to use checksums
78e2e2800526fd0ba9d857be915d88d3f0f1fd8a890b651d30dbfda56cbe6701
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / gamrs-0.14.5-cp312-cp312-macosx_10_13_x86_64.whl

Download URL gamrs-0.14.5-cp312-cp312-macosx_10_13_x86_64.whl
Size 7.3 MB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
5df9ff76349c48e114426a0df7483891ef4e8a627cda998347ddafb84eb3553c
BLAKE2b-256 checksum
How to use checksums
f9c507ed193b309ed7894b3a2e2106982a958874b672d30a844c8bf4c837a16f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / gamrs-0.14.5-cp311-cp311-win_amd64.whl

Download URL gamrs-0.14.5-cp311-cp311-win_amd64.whl
Size 4.1 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
bc210eb519ccdde31ac27153129f29c1012864a89f1053ce7a9236230786a156
BLAKE2b-256 checksum
How to use checksums
f2980a46e45f4321011339e275330129f43b554d06d1042ca439e7ab794cf68f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / gamrs-0.14.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL gamrs-0.14.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.7 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
1b89e476a972be9baba251b66189cdd74adc72f3bd6df1f3ccbe5786f0b248bb
BLAKE2b-256 checksum
How to use checksums
8755a843be0a802690df0ba6c56f67ad4fb497ae6148a1ae535bc3726c0990cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / gamrs-0.14.5-cp311-cp311-macosx_11_0_arm64.whl

Download URL gamrs-0.14.5-cp311-cp311-macosx_11_0_arm64.whl
Size 5.6 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
575d0d0ee5eebf6ec7ae0c7538bf13440e89c53bbf9e71c740b18f6db694981f
BLAKE2b-256 checksum
How to use checksums
0b1c29dfeb7de2c28b203a89daca3e2f935d9e92db7d1c6ead6c025c695b3727
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / gamrs-0.14.5-cp311-cp311-macosx_10_13_x86_64.whl

Download URL gamrs-0.14.5-cp311-cp311-macosx_10_13_x86_64.whl
Size 7.3 MB
Tags CPython 3.11 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
06d301ea49427a07b199bb78fbae81836c4d6c728b198f87b757834a42fb0c71
BLAKE2b-256 checksum
How to use checksums
589fe1943f3627698aaed3d99022c6a88febf78a815047e1007f98a4f642e9b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / gamrs-0.14.5-cp310-cp310-win_amd64.whl

Download URL gamrs-0.14.5-cp310-cp310-win_amd64.whl
Size 4.1 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
381ccd7ed686f174b7de426355dae29ea8613b55e25fee15df7c0c86083234fa
BLAKE2b-256 checksum
How to use checksums
0528b21bff7a396361ce6198ce7e10f3fcad57957e99ac860d6123e7ffdeabc8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / gamrs-0.14.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL gamrs-0.14.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.8 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
6586a42467cc493a2ba20f5dc10e7cf56cd4e992771fe47caedb6667b8c523f7
BLAKE2b-256 checksum
How to use checksums
25cb97bb1d9e7b950336ed7904c6ecfad2059ca3361ac9403de8997d980f41d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / gamrs-0.14.5-cp310-cp310-macosx_10_13_x86_64.whl

Download URL gamrs-0.14.5-cp310-cp310-macosx_10_13_x86_64.whl
Size 7.3 MB
Tags CPython 3.10 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
2ca05485d76f89fb5a04a5bcd45adf9667d5b04a6cb79348b0c67a1063a3df55
BLAKE2b-256 checksum
How to use checksums
9968a62c164b0171449b58d209bac0d1dac1f00686154668bb0a90705e7f7fb2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / gamrs-0.14.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL gamrs-0.14.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.8 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
4cc3ee2cf54e452e7e8e7feee198e6c84da372c55a20fc2e594dbda7eabec22c
BLAKE2b-256 checksum
How to use checksums
50766a30c0efd27b05a796b3c3e102fb7c2018767553f665e55c985b8761fb2b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / gamrs-0.14.5-cp39-cp39-macosx_10_13_x86_64.whl

Download URL gamrs-0.14.5-cp39-cp39-macosx_10_13_x86_64.whl
Size 7.3 MB
Tags CPython 3.9 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
18798a1fff02419a22c4963e98f5adaa34a9ea7e8b21bfd6d2038a3ec3200c5d
BLAKE2b-256 checksum
How to use checksums
993695734ac9371f213d1297ff3e4f379e618062a653c618cc81ad5ee75b6d00
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Security for gamrs 0.14.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.14.5 This release

24 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page