Skip to main content

High-performance statistical inference engine — MLE, Bayesian, survival, GLM, time series. Rust core with Python bindings.

Project description

NextStat

License: AGPL-3.0 Rust Python

NextStat is a high-performance statistical fitting toolkit for High Energy Physics (HEP), implemented in Rust with Python bindings.

The God Run (toy-based CLs)

  • Model: S+B HistFactory (synthetic), 50 channels × 4 bins, 201 parameters (mu + 200 nuisances)
  • Task: CLs via toy-based q~_mu
  • Load: 10,000 toys (b-only) + 10,000 toys (s+b)
  • Machine: Apple M5 (arm64), macOS-26.2-arm64-arm-64bit-Mach-O
  • Versions: nextstat 0.1.0, pyhf 0.7.6, Python 3.13.11
  • Recorded: 2026-02-07 (UTC)
  • Commit: 88d57856
Tool Wall time Speedup
NextStat (Rayon) 3.47 s 1.0×
pyhf (multiprocessing, 10 procs) 50m 11.7s 868.0×

Reproduce:

PYTHONPATH=bindings/ns-py/python ./.venv/bin/python scripts/god_run_benchmark.py --n-toys 10000

What You Get

  • pyhf JSON compatibility (HistFactory-style workspaces)
  • Native HS3 (HEP Statistics Serialization Standard) v0.2 support — load ROOT 6.37+ HS3 JSON directly, auto-detected alongside pyhf
  • Native ROOT TTree reader with mmap I/O, rayon-parallel basket decompression, and columnar extraction — no ROOT C++ dependency
  • Ntuple-to-workspace pipeline: ROOT ntuples → histograms → HistFactory workspace (TRExFitter replacement)
  • Expression engine for string-based selections and weights ("njet >= 4 && pt > 25.0")
  • Negative log-likelihood (Poisson + constraints), including Barlow-Beeston auxiliary terms
  • Maximum Likelihood Estimation (L-BFGS-B) with uncertainties via (damped) Hessian-based covariance + diagonal fallback
  • NUTS sampling surface (generic Posterior API) + optional ArviZ integration
  • SIMD kernels, Rayon parallelism, Apple Accelerate (vDSP/vForce), and optional GPU acceleration (CUDA for NVIDIA, Metal for Apple Silicon)
  • Rust library, Python package (PyO3/maturin), and a CLI
  • Implemented packs: regression/GLM, hierarchical models, time series (Kalman/EM/forecast), econometrics/causal helpers, and PK/NLME baselines

Docs

  • Docs index: docs/README.md
  • Tutorials (end-to-end): docs/tutorials/README.md
  • References (CLI/Python/Rust/Server/Tools): docs/references/
  • Demo: Physics Assistant (ROOT -> anomaly scan -> p-values + plots): docs/demos/physics-assistant.md

Quickstart

Install (Rust)

cargo add ns-core ns-inference ns-compute

Install (Python)

pip install nextstat

Build From Source

git clone https://github.com/NextStat/nextstat.io.git
cd nextstat.io

# Rust workspace
cargo build --release

# Python bindings (editable dev install)
cd bindings/ns-py
maturin develop --release

Try the Playground (WASM)

Run asymptotic CLs upper limits (Brazil bands) in the browser (no Python, no server) using a pyhf-style workspace.json.

From the repo root:

rustup target add wasm32-unknown-unknown
cargo install wasm-bindgen-cli --version 0.2.108

make playground-build-wasm
make playground-serve

Open http://localhost:8000/ and drag & drop a workspace.json (example: playground/examples/simple_workspace.json).

Usage

Rust API

use ns_inference::mle::MaximumLikelihoodEstimator;
use ns_translate::pyhf::{HistFactoryModel, HistoSysInterpCode, NormSysInterpCode, Workspace};

let json = std::fs::read_to_string("workspace.json")?;
let workspace: Workspace = serde_json::from_str(&json)?;

// Default interpolation (NextStat "smooth" defaults): NormSys=Code4, HistoSys=Code4p.
// For strict HistFactory/pyhf defaults, use Code1/Code0:
let model = HistFactoryModel::from_workspace_with_settings(
    &workspace,
    NormSysInterpCode::Code1,
    HistoSysInterpCode::Code0,
)?;

let mle = MaximumLikelihoodEstimator::new();
let result = mle.fit(&model)?;

println!("Best-fit params: {:?}", result.parameters);
println!("NLL at minimum: {}", result.nll);

Python API

import json

import nextstat

workspace = json.loads(open("workspace.json").read())
model = nextstat.from_pyhf(json.dumps(workspace))
result = nextstat.fit(model)

poi_idx = model.poi_index()
print("POI index:", poi_idx)
print("Best-fit POI:", result.bestfit[poi_idx])
print("Uncertainty:", result.uncertainties[poi_idx])

Unbinned (event-level) API

Compile an event-level likelihood from an unbinned_spec_v0 JSON/YAML file and run fits/scans:

import nextstat

analysis = nextstat.unbinned.from_config("unbinned.json")
fit = analysis.fit()
print("NLL:", fit.nll)

scan = analysis.scan([0.0, 0.5, 1.0, 2.0])
print("mu_hat:", scan["mu_hat"])

cls = analysis.hypotest_toys(1.0, n_toys=2000, seed=42)
print("CLs:", cls)

Bayesian (NUTS) + ArviZ

Install optional deps:

pip install "nextstat[bayes]"

Run sampling and get an ArviZ InferenceData:

import json
from pathlib import Path

import nextstat

workspace = json.loads(Path("workspace.json").read_text())
model = nextstat.from_pyhf(json.dumps(workspace))

idata = nextstat.bayes.sample(
    model,
    n_chains=2,
    n_warmup=500,
    n_samples=1000,
    seed=42,
    target_accept=0.8,
)

print(idata)

Viz (CLs Brazil bands, profile scans)

Install optional deps:

pip install "nextstat[viz]"

Compute artifacts and plot (matplotlib):

import json
import numpy as np
from pathlib import Path

import nextstat

workspace = json.loads(Path("workspace.json").read_text())
model = nextstat.from_pyhf(json.dumps(workspace))

scan = np.linspace(0.0, 5.0, 101)
cls_art = nextstat.viz.cls_curve(model, scan, alpha=0.05)
nextstat.viz.plot_cls_curve(cls_art, title="CLs Brazil band")

mu = [0.0, 0.5, 1.0, 2.0]
prof_art = nextstat.viz.profile_curve(model, mu)
nextstat.viz.plot_profile_curve(prof_art, title="Profile likelihood scan")

Ntuple → Workspace (TRExFitter replacement)

use ns_translate::NtupleWorkspaceBuilder;

let ws = NtupleWorkspaceBuilder::new()
    .ntuple_path("ntuples/")
    .tree_name("events")
    .measurement("meas", "mu")
    .add_channel("SR", |ch| {
        ch.variable("mbb")
          .binning(&[0., 50., 100., 150., 200., 300.])
          .selection("njet >= 4 && pt > 25.0")
          .data_file("data.root")
          .add_sample("signal", |s| {
              s.file("ttH.root")
               .weight("weight_mc * weight_sf")
               .normfactor("mu")
          })
          .add_sample("background", |s| {
              s.file("ttbar.root")
               .weight("weight_mc * weight_sf")
               .normsys("bkg_norm", 0.9, 1.1)
               .weight_sys("jes", "weight_jes_up", "weight_jes_down")
               .tree_sys("jer", "jer_up.root", "jer_down.root")
               .staterror()
          })
    })
    .build()?;  // → Workspace (same type as pyhf JSON path)

No ROOT C++ dependency. ~8.5x faster than uproot+numpy on the full pipeline.

Low-level TTree access

use ns_root::RootFile;

let file = RootFile::open("data.root")?;
let tree = file.get_tree("events")?;

// Columnar access
let pt: Vec<f64> = file.branch_data(&tree, "pt")?;
let eta: Vec<f64> = file.branch_data(&tree, "eta")?;

// Expression engine
let expr = ns_root::CompiledExpr::compile("pt > 25.0 && abs(eta) < 2.5")?;

CLI

nextstat fit --input workspace.json
nextstat --interp-defaults pyhf fit --input workspace.json   # NormSys=Code1, HistoSys=Code0
nextstat hypotest --input workspace.json --mu 1.0 --expected-set
nextstat hypotest-toys --input workspace.json --mu 1.0 --n-toys 10000 --seed 42 --threads 0
nextstat hypotest-toys --input workspace.json --mu 1.0 --n-toys 10000 --gpu cuda   # NVIDIA GPU (f64)
nextstat hypotest-toys --input workspace.json --mu 1.0 --n-toys 10000 --gpu metal  # Apple Silicon GPU (f32)
nextstat upper-limit --input workspace.json --expected --scan-start 0 --scan-stop 5 --scan-points 201
nextstat version

Documentation

  • Tutorial index: docs/tutorials/README.md
  • Python API reference: docs/references/python-api.md
  • Rust API reference: docs/references/rust-api.md
  • CLI reference: docs/references/cli.md
  • Playground (browser/WASM): docs/references/playground.md (and playground/README.md)

Architecture

NextStat follows a "clean architecture" style: inference depends on stable abstractions, not on specific execution backends.

┌─────────────────────────────────────────────────────────────────┐
│                        HIGH-LEVEL LOGIC                          │
│  ns-inference (MLE, Profile Likelihood, Hypothesis Tests, ...)   │
│  - depends on core types and model interfaces                     │
└─────────────────────────┬───────────────────────────────────────┘
                          │ depends on abstractions
┌─────────────────────────┴───────────────────────────────────────┐
│                      ns-core (interfaces)                        │
│  - error types, FitResult, traits                                 │
└─────────────────────────┬───────────────────────────────────────┘
                          │ implemented by
┌─────────────────────────┴───────────────────────────────────────┐
│                    LOW-LEVEL IMPLEMENTATIONS                     │
│  ns-translate (pyhf + ntuple → Workspace)  ns-compute (SIMD/CUDA/Metal) │
│  ns-ad (dual/tape AD)  ns-root (ROOT I/O, TTree, expressions)    │
└─────────────────────────────────────────────────────────────────┘

Project Layout

nextstat/
├── crates/
│   ├── ns-core/         # Core types, traits, error handling
│   ├── ns-compute/      # SIMD kernels, Apple Accelerate, CUDA/Metal batch NLL+grad
│   ├── ns-ad/           # Automatic differentiation (dual/tape)
│   ├── ns-root/         # Native ROOT file reader (TH1, TTree, expressions, filler)
│   ├── ns-translate/    # Format translators (pyhf, HS3, HistFactory XML, ntuple builder)
│   ├── ns-inference/    # MLE, NUTS, CLs, GLM, time series, PK/NLME
│   ├── ns-viz/          # Visualization artifacts
│   └── ns-cli/          # CLI binary
├── bindings/
│   └── ns-py/           # Python bindings (PyO3/maturin)
├── docs/
│   ├── legal/
│   ├── plans/
│   └── references/
└── tests/

Development

Requirements

  • Rust 1.93+ (edition 2024)
  • Python 3.11+ (for bindings)
  • maturin (for Python bindings)

Build and Test

# Build
cargo build --workspace

# Build with CUDA support (requires nvcc)
cargo build --workspace --features cuda

# Build with Metal support (Apple Silicon, macOS)
cargo build --workspace --features metal

# Tests (default features)
cargo test --workspace

# Tests including optional backends (CUDA requires nvcc)
cargo test --workspace --all-features

# Opt-in slow Rust tests (toys, SBC, NUTS quality gates)
make rust-slow-tests

# Very slow (release) regression check
make rust-very-slow-tests

# Format and lint
cargo fmt --check
cargo clippy --workspace -- -D warnings

Python Tests

Local test runs should use the repo venv (it pins a Python version compatible with the built extension).

# Run fast Python tests (parity + API contracts)
PYTHONPATH=bindings/ns-py/python ./.venv/bin/python -m pytest -q -m "not slow" tests/python

# Run slow toy regression tests (opt-in)
PYTHONPATH=bindings/ns-py/python NS_RUN_SLOW=1 NS_TOYS=200 NS_SEED=0 ./.venv/bin/python -m pytest -q -m slow tests/python

Benchmarks

# Compile and run all benches
cargo bench --workspace

# Common entry points
cargo bench -p ns-translate --bench model_benchmark
cargo bench -p ns-translate --bench nll_benchmark
cargo bench -p ns-compute --bench simd_benchmark
cargo bench -p ns-inference --bench mle_benchmark
cargo bench -p ns-inference --bench hypotest_benchmark
cargo bench -p ns-ad --bench ad_benchmark
cargo bench -p ns-core --bench core_benchmark

Details (quick mode, baselines, CI workflows): docs/benchmarks.md.

Apex2 Baselines (pyhf + P6 GLM)

Record a reference baseline (writes JSON under tmp/baselines/ with a full environment fingerprint):

make apex2-baseline-record

Compare current HEAD vs the latest recorded baseline (writes tmp/baseline_compare_report.json):

make apex2-baseline-compare

Pre-release gate runbook: docs/tutorials/release-gates.md.

Documentation

  • White paper (Markdown): docs/WHITEPAPER.md
  • White paper (PDF): built by python3 scripts/build_whitepaper.py and attached to GitHub Releases on tags (v*)
  • Internal plans/design notes are maintained outside this public repository.

Contributing

See CONTRIBUTING.md. All commits must include DCO sign-off (git commit -s).

License

NextStat uses a dual-licensing model:

  • Open Source: LICENSE (AGPL-3.0-or-later)
  • Commercial: LICENSE-COMMERCIAL

Contact

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nextstat-0.9.2.tar.gz (1.3 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

nextstat-0.9.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.4 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

nextstat-0.9.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.4 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

nextstat-0.9.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

nextstat-0.9.2-cp314-cp314-macosx_11_0_arm64.whl (5.8 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

nextstat-0.9.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.4 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

nextstat-0.9.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

nextstat-0.9.2-cp312-cp312-win_amd64.whl (6.5 MB view details)

Uploaded CPython 3.12Windows x86-64

nextstat-0.9.2-cp312-cp312-manylinux_2_34_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

nextstat-0.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

nextstat-0.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

File details

Details for the file nextstat-0.9.2.tar.gz.

File metadata

  • Download URL: nextstat-0.9.2.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nextstat-0.9.2.tar.gz
Algorithm Hash digest
SHA256 b20c90081df2b904e3e112c0290b85788c0057beaa6de4c49b86e499c8e5199d
MD5 5137f6ad24881863c1dda2ff37ab6a63
BLAKE2b-256 5a79297cda7adf07e51b27a62b571a2464537f4252e07d4d84ffd2863811ea87

See more details on using hashes here.

Provenance

The following attestation bundles were made for nextstat-0.9.2.tar.gz:

Publisher: release.yml on NextStat/nextstat.io

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nextstat-0.9.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nextstat-0.9.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 369d5f53b6d83b3d4d160da12788f58222d6a8d8f233f47b8a6841a4290c47b0
MD5 f893dbe27a3b5e1472d2be0e684c70de
BLAKE2b-256 f763aaedf6925f1e31676b228d5830435ca09d3032e61e5dd76a3540d494e538

See more details on using hashes here.

Provenance

The following attestation bundles were made for nextstat-0.9.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on NextStat/nextstat.io

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nextstat-0.9.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nextstat-0.9.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 468b71ee6342a43bbe92222fd7ea54820f553b368977fd3a22917670a21c5721
MD5 ce96cac87733b0e9a5c74369cd87abcb
BLAKE2b-256 92e2f501e2d628a95f663b84e42a24c4ce38b51db84d4981857830a4e56ec6c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for nextstat-0.9.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on NextStat/nextstat.io

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nextstat-0.9.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nextstat-0.9.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 de07a7cee9ed29980fdc85a34e81d2774512f138b51738e04bebbfbc27bd3200
MD5 47988105fb0a2f78715efb33c5c2517f
BLAKE2b-256 3a352e0e30dda1ca14f460eab584da607d4f4536fc8384d7a4f562d80598db6d

See more details on using hashes here.

Provenance

The following attestation bundles were made for nextstat-0.9.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on NextStat/nextstat.io

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nextstat-0.9.2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nextstat-0.9.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 880405d7ca1ce6b6e6cbb207f35b0beea6979e5a5ddbc1bc3e2802adf18b8e7b
MD5 fd8748da0a1344dfe95ba653b3cf8c5d
BLAKE2b-256 1a094fac2668258e89ef80930b2d7cc07ec3e17617e703bd3feab15978620950

See more details on using hashes here.

Provenance

The following attestation bundles were made for nextstat-0.9.2-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on NextStat/nextstat.io

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nextstat-0.9.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nextstat-0.9.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 17cee14cdad1050e7a33ed1e1b25962bb80b965e949513d1b8115288faaf55ae
MD5 19056f721e5a2ca4c5daedaa19116594
BLAKE2b-256 3c835d5f7a7b0b3ed4e823f9407f9c24b7dfde97390593f0dbb9520c65415d2e

See more details on using hashes here.

Provenance

The following attestation bundles were made for nextstat-0.9.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on NextStat/nextstat.io

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nextstat-0.9.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nextstat-0.9.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c9dca76229a98833fb4e79c6d4e278eb1ac131b433bb5226889904e602fdf795
MD5 cb286527f2e5a62b500a1eea2c8c38a5
BLAKE2b-256 54fe3799b90f9a0eb08b08013a81799ce7b1178a7e8e0bf484e6ab88ace4ef57

See more details on using hashes here.

Provenance

The following attestation bundles were made for nextstat-0.9.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on NextStat/nextstat.io

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nextstat-0.9.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: nextstat-0.9.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 6.5 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nextstat-0.9.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8f9f595006ed0acf6f2de69161bf303b739b5fb014b42642089d8987b3e62e4d
MD5 117f0c7fb4750effc0daab6d1ac16fc8
BLAKE2b-256 6ec3a9ff9109bd78ca21dce0eb741d7a8bd331449873873df8269644da941b5b

See more details on using hashes here.

Provenance

The following attestation bundles were made for nextstat-0.9.2-cp312-cp312-win_amd64.whl:

Publisher: release.yml on NextStat/nextstat.io

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nextstat-0.9.2-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for nextstat-0.9.2-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 61b05f56c77e4a47ddd926b33555fd396f41171c8e8fccda536c433f4a2ba020
MD5 aeee6ac2c774d48bca7f06fe6ebf048b
BLAKE2b-256 518a03f9c6a65cbc47ad09f065eb170e73a71abdaab4f9720f69b4e27f875fd1

See more details on using hashes here.

Provenance

The following attestation bundles were made for nextstat-0.9.2-cp312-cp312-manylinux_2_34_x86_64.whl:

Publisher: release.yml on NextStat/nextstat.io

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nextstat-0.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nextstat-0.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c1f8ad6e23c5f4bb217e3af8f39af191a544bcac8ac42535eb9c55b364dc276c
MD5 8cb4e577421ebd2b99cbd92cef5dc032
BLAKE2b-256 7eac092f14c30f498f92e8359a1d4defecf497d07de9f9ccc18eccee39bc69fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for nextstat-0.9.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on NextStat/nextstat.io

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nextstat-0.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nextstat-0.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3f4733783f2c1046e7441134a8da490af058cddb3ac2da119f2a09b4aeea99ba
MD5 62c0ddac60f4aabef48fb3031438b049
BLAKE2b-256 7d5a1c3c9f0170c1ab0f24c28ef0e1d1d52f2e3ed179753d63f09e88d428b09f

See more details on using hashes here.

Provenance

The following attestation bundles were made for nextstat-0.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on NextStat/nextstat.io

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page