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.
  • Numeric by= variable — s(x, by=w) via CrTerm("x", by="w") or term_by_mapping={"x": "w"}: the term contributes w * f(x), exactly 0 where w = 0. As in mgcv it is not centred unless w is constant. The w column feeds the smooth but is not a term of its own, because an uncentred s(x, by=w) already spans w * constant. Name it in predictor_basis_map to add it anyway; it is then aliased and fitted as 0. An unusable term_by_mapping entry raises. Not combinable with pc. CR bases 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.15.1

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.15.1
File Size Uploaded Provenance
gamrs-0.15.1.tar.gz 4.3 MB Without provenance Details

Built distributions (wheels)

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

Total release size: 145.9 MB

Release files / gamrs-0.15.1.tar.gz

Download URL gamrs-0.15.1.tar.gz
Size 4.3 MB
Tags Source
SHA-256 checksum
How to use checksums
6576cd8366cd6c1efcc4c42b93a35ca436a7c126bf4b31ec489d78869c9dc166
BLAKE2b-256 checksum
How to use checksums
3288ac3157aaa3ead084fa78a636b1c84fe1bcfe0cf9626f1436dd6e7947a46f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

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

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

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

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

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

Download URL gamrs-0.15.1-cp314-cp314-win_amd64.whl
Size 4.2 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
6d13e14b8f112fd7a1cd8dcafdf311c002ddfc99bc3e9eef7c4294e09bfa6bef
BLAKE2b-256 checksum
How to use checksums
211f8b82aac66b9b0ecbf2d0d8c7e8038595fa217419211480a1accb97e03921
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Download URL gamrs-0.15.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.8 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
1f0cdd89f6c9143dfc97fa5db72cb670b46a16687fcd78a9d767e0b4ce4b28dd
BLAKE2b-256 checksum
How to use checksums
3ee7b31f6084aee493a7497acf83472cc77e9001a6bcf34b6d55d07c5c181a1f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Security for gamrs 0.15.1

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