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

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.4
File Size Uploaded Provenance
gamrs-0.14.4.tar.gz 4.2 MB Without provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for gamrs 0.14.4
File
gamrs-0.14.4-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.4-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.4-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
gamrs-0.14.4-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.4-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
gamrs-0.14.4-cp314-cp314-macosx_10_13_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.13+ x86-64 Details
gamrs-0.14.4-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
gamrs-0.14.4-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.4-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
gamrs-0.14.4-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
gamrs-0.14.4-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
gamrs-0.14.4-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.4-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
gamrs-0.14.4-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
gamrs-0.14.4-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
gamrs-0.14.4-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.4-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
gamrs-0.14.4-cp311-cp311-macosx_10_13_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.13+ x86-64 Details
gamrs-0.14.4-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
gamrs-0.14.4-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.4-cp310-cp310-macosx_10_13_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.13+ x86-64 Details
gamrs-0.14.4-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.4-cp39-cp39-macosx_10_13_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.13+ x86-64 Details

Total release size: 144.3 MB

Release files / gamrs-0.14.4.tar.gz

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

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

Download URL gamrs-0.14.4-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
6472e322a382305cd9180756dc149a4b5880c0b6a1776fa47f290fff7a7284a1
BLAKE2b-256 checksum
How to use checksums
fd60952a5b91b407c6ecac3339ac4d1e55a7d353928a4516628a0cf63d006f29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

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

Download URL gamrs-0.14.4-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
7d25c8e9a65798c4bfabf62c3b165891846b0d8892b2fa54c054320f183735b5
BLAKE2b-256 checksum
How to use checksums
88e162f97f56919479c2c69ca3fa859b0c83c27814e952563135b22a8eb6c974
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

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

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

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

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

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

Download URL gamrs-0.14.4-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
a161b33c70b857e62fd742a64944677663678399fc53010ada07dd51f5f4e5a1
BLAKE2b-256 checksum
How to use checksums
6d9a25ed7a9ede9cbb1acc849764ccc417f09c06e0b8ee83b011cee4e91d3e83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

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

Download URL gamrs-0.14.4-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
c07a610bf372e4bd4c8980436b47e3e9052524c6b632210ae898e5e6baff7f95
BLAKE2b-256 checksum
How to use checksums
946e90cbca245e5a3447f607e91d21cc4b0696a8a56b041357e77c2dfbc2a498
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

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

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

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

Download URL gamrs-0.14.4-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
4bf94991e49b3f6faf005b6f628901dcbbf4b7fa8595d7af2c7b95f38bb699fb
BLAKE2b-256 checksum
How to use checksums
6b62319de769dd1ec430ed893c213f6695490093cac72ad2e4f0cef4388dcae4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

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

Download URL gamrs-0.14.4-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
75e7072d5f529c497a9bc6c3667732c6c8888c851886e19d7434077206e4635c
BLAKE2b-256 checksum
How to use checksums
fc6074d7290fa27223a0837946b0d9d9c2702c5b6109387ed86fe725385a3d6b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

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

Download URL gamrs-0.14.4-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
da745fdedd97132aba5261262107592e6b7fdb394e3786f90604b5229b347f46
BLAKE2b-256 checksum
How to use checksums
ea08a17b20a81a1f20c07e035886fab3996e56ced27e314f27d494350e0c90db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

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

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

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

Download URL gamrs-0.14.4-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
8b303872fdb2eab93e2414863afcfdd36a9b215a3eb162b862e52c6c505017c4
BLAKE2b-256 checksum
How to use checksums
18c1f9937af48aca0274da1166ede4e3ec89e014a9abf3e4efac746a5dd13f2b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

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

Download URL gamrs-0.14.4-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
1f156328e522253529a96a11fe469e2c05ecf2acf84e04c17534c0db497e623e
BLAKE2b-256 checksum
How to use checksums
5ef7de3188827a5d6fe18e6d42491300a6c5aff2c069abbeaae47fdc2743f2aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

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

Download URL gamrs-0.14.4-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
b39ca1b504f8502d7d19203c28908c9a04ca7d7a197fccf548a14533b0343ecc
BLAKE2b-256 checksum
How to use checksums
66a33b79fb752dfae524eba7060f1848813dcbe15fd57b7b49bc497f7818c774
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

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

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

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

Download URL gamrs-0.14.4-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
771380e2d072b081cce78f88d98382bf2a83ec1c4ef9732f33690c9b0ecd2b6c
BLAKE2b-256 checksum
How to use checksums
3457caa5b384500eba3af2095f38d74aea614d47943bce0d4d7ac88a26412712
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

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

Download URL gamrs-0.14.4-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
9381d275bf6f17fdb0664ade2aac41f1dd7e1a4c3b77db91ccfac78fb752334f
BLAKE2b-256 checksum
How to use checksums
c304401be9737ccce86a6f6df3c71238d8d8f01ca2b3f8fdf7287c5711e70b86
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

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

Download URL gamrs-0.14.4-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
f86be8a40891836cecdf741b4cf2693c85b9771867e7f7479b9998849b358e6c
BLAKE2b-256 checksum
How to use checksums
8188cebc927db268d5e0a82af25d0730820d6dbd5a05cf5bb1d4f06c9ef3a7a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

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

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

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

Download URL gamrs-0.14.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.7 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
2b77a5bc6357090a759eed161973813ba985bfc01b06ba5d802597c6c52ae8dd
BLAKE2b-256 checksum
How to use checksums
77e66a4f2e679c6b591efd768168c335b02d75e15c2a5efe3974d56deaf113e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

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

Download URL gamrs-0.14.4-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
17a2ab40006a3d0892df2fbe14709ca6b3dc173550468c9c2cd0dc65547d67c0
BLAKE2b-256 checksum
How to use checksums
76438f197d9e29b8c7a2868421c0c17e7d86b88f97eb8d9840d39bdb302129e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

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

Download URL gamrs-0.14.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.7 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
9a2645adb94201d3852e63cf08526514e6506dd4fdb5da02c12af5153918dec7
BLAKE2b-256 checksum
How to use checksums
54c33793c648edbd040b546981cb15a0ad51b78abc572818b6399a8bab01ea8c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

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

Download URL gamrs-0.14.4-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
b39a69ab33e00822cd8a0f2118dd1e903a0a145c1523d7a760d33543dda117e6
BLAKE2b-256 checksum
How to use checksums
f17e564adf7186e97f1a55cda2895c42cf1abf363c1e73bac29bfb8346ad0f6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Security for gamrs 0.14.4

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