neospice
Open Circuit Lab → — build and simulate circuits in your browser. No installation required.
neospice is an independent C++20 reimplementation of the SPICE circuit simulator. Its solver, analysis flow, and device models derive from UC Berkeley SPICE3 (BSD-licensed) and ngspice -- re-architected around a clean Device interface, native Python bindings, and an embeddable C++ API. MIT licensed; see NOTICE for full third-party attribution.
It reads SPICE netlists, writes ngspice-format raw results, and pairs a self-contained Sparse 1.3-compatible solver stack and differentiated behavioral sources with an embeddable API for EDA tools, optimization loops, and notebooks.
Version 0.2.0 is a beta release; 1.0 is reserved for further stability work. See the release notes. Publication validation targets ngspice 47 exclusively. Known model limitations and corpus mismatches remain; see the progress tracker and comparison methods. The project is not yet ready for a JOSS submission.
An initial JOSS manuscript draft and PDF are available for review. Actual research evidence, final validation/benchmarks and human disclosures remain pending. ngspice 47 compatibility defines the default behavior, required reference checks and migration-tool inputs. A compiled draft is not a submission-ready release.
Features
- Analyses -- DC OP, DC sweep, transient (adaptive Trap/Gear-2/BE), AC small-signal, noise (adjoint method), transfer function, sensitivity, pole-zero, Fourier/THD, parameter sweep (
.step), and.measurepost-processing - Device families -- passives, independent/dependent/behavioral sources, switches, transmission lines, diodes, BJTs, JFETs, MESFETs, HFETs, and MOSFETs through BSIM4v7
- Embeddable C++ API --
Simulator/Circuit/Resulttypes with handle-based and string-based accessors, typed device methods, and circuit introspection - High performance -- NeoSolver (self-contained Sparse 1.3-compatible LU), G/C matrix caching for AC, adjoint-method noise
- ngspice-compatible -- reads standard SPICE netlists, writes
.rawfiles in ngspice format - C++ and Python validation -- analytical checks and ngspice comparisons, with current failures and test results in the progress tracker
- Corpus harness -- a historical cohort of 34,908 KiCad operating-point fixtures; input freezing now records declaration identities and separate planned rescues. Completed ngspice 47 audits are linked from the progress tracker; declaration binding and full-model scope still need interpretation. Minimal operating-point fixtures do not certify transient, AC, or noise behavior.
Browser Circuit Lab
Build and simulate circuits in a visual schematic editor, or use an editable SPICE netlist. Circuit Lab includes eight interactive examples, light/dark themes, DC/AC/transient plots, parameter tuning, local project saving, and CSV export. The simulator runs entirely in your browser using WebAssembly.
# Build the WASM artifacts first; see docs/webassembly.md.
npm --prefix web ci
npm --prefix web run build
npm --prefix web run preview
Open http://127.0.0.1:48173/. The Circuit Lab guide covers the visual editor, external preview tunnel, tests and manual GitHub Pages deployment. The existing minimal WASM demo is also retained.
Quick Start (C++)
Prerequisites
- C++20 compiler (GCC 12+ or Clang 15+)
- CMake 3.20+
- OpenBLAS
- SLEEF (vectorized math library)
See docs/building.md for platform-specific install commands.
Build
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)
Run
# Simulate a netlist
./build/neospice circuit.cir
# Specify output file
./build/neospice circuit.cir -o result.raw
# Split output by analysis type
./build/neospice circuit.cir --split
Output is written in ngspice-compatible .raw format, viewable in any waveform viewer (e.g. GTKWave, KST, ngspice's built-in plot).
Test
cd build && ctest -j$(nproc)
Analyses
| Analysis | Netlist Command | Description |
|---|---|---|
| DC operating point | .op |
Newton-Raphson with GMIN/source stepping fallback |
| DC sweep | .dc V1 0 5 0.1 |
1D and nested 2D parameter sweeps |
| Transient | .tran 1n 100n |
Adaptive timestepping with LTE control |
| AC small-signal | .ac dec 10 1 100meg |
DEC/OCT/LIN frequency sweeps |
| Noise | .noise v(out) V1 dec 10 1 100meg |
Adjoint method, per-device breakdown |
| Transfer function | .tf v(out) V1 |
Gain + input/output impedance |
| Sensitivity | .sens v(out) |
Finite-difference DC sensitivity to resistor values and independent-source DC values |
| Pole-zero | .pz |
Transfer function poles and zeros |
| Fourier | .four 1meg v(out) |
Harmonic decomposition + THD |
| Parameter sweep | .step param R1 1k 10k 1k |
Sweep any parameter across analyses |
Device Models
AM source parameters now follow ngspice 47. Existing AM netlists and C++ source parameters may require conversion; see source compatibility.
| Category | Models |
|---|---|
| Passives | R (with TC, AC resistance, flicker/thermal noise), C, L, K (mutual inductance) |
| Sources | V, I -- DC, PULSE, SIN, PWL, EXP, SFFM, AM waveforms |
| Dependent sources | E (VCVS), G (VCCS), F (CCCS), H (CCVS) -- linear, POLY, TABLE |
| Behavioral | B-source -- expression-based with auto-diff Jacobians, DDT, IDT, PWL, TABLE |
| Switches | S (voltage-controlled), W (current-controlled) -- hysteresis |
| Transmission lines | T (lossless Branin), O (LTRA lossy -- RC/RG/LC/RLC) |
| Diode | Standard diode (level 1) |
| BJT | Gummel-Poon, VBIC (levels 4/9/12/13) |
| JFET | JFET (Shichman-Hodges), JFET2 (Parker-Skellern) |
| MESFET | MES (GaAs MESFET -- NMF/PMF) |
| HFET | HFET1 (Curtice Cubic), HFET2 (Chalmers) |
| MOSFET | MOS1, MOS3, MOS9, BSIM3v32, BSIM3, BSIM4v7, BSIMSOI, HiSIM2, HiSIM_HV |
C++ API
Running a netlist
#include "neospice/neospice.hpp"
neospice::Simulator sim;
auto ckt = sim.load("amplifier.cir");
auto result = sim.run(ckt);
// Typed access to results
auto& ac = std::get<neospice::ACResult>(result.analysis);
auto gain_db = ac.magnitude_db("out");
auto phase = ac.phase_deg("out");
Individual analyses
auto dc = sim.run_dc(ckt);
double vout = dc.voltage("out");
auto tran = sim.run_transient(ckt, 1e-9, 1e-6);
auto vout_wave = tran.voltage("out"); // vector<double>
auto ac = sim.run_ac(ckt, neospice::ACMode::DEC, 10, 1.0, 100e6);
auto gain = ac.magnitude_db("out"); // vector<double>
Building circuits programmatically
using namespace neospice;
Circuit ckt;
auto in = ckt.node("in");
auto out = ckt.node("out");
ckt.V("V1", in, GND, 0.0, 1.0); // DC=0, AC=1
ckt.R("R1", in, out, 1e3);
ckt.C("C1", out, GND, 100e-12);
Simulator sim;
auto ac = sim.run_ac(ckt, ACMode::DEC, 10, 1.0, 100e6);
auto gain = ac.magnitude_db("out");
Handle-based result access
// String-based (works with any circuit)
double vout = dc.voltage("out");
// Handle-based (O(1) dense array access, type-safe)
NodeId out_id = ckt.find_node("out");
double vout_h = dc.voltage(out_id);
auto vout_ac = ac.magnitude_db(out_id);
Measurement utilities
#include "neospice/measure.hpp"
NodeId out_id = ckt.find_node("out");
double bw = measure::bandwidth_3db(ac, out_id);
double rt = measure::rise_time(tran, out_id, 0.5, 4.5);
double st = measure::settling_time(tran, out_id, 5.0, 0.05);
double vrms = measure::rms(tran, out_id);
Circuit introspection
auto nodes = ckt.node_names(); // {"in", "out", ...}
auto devices = ckt.device_names(); // {"R1", "C1", "V1"}
auto info = ckt.device_info("R1"); // type, nodes, value
auto conn = ckt.devices_at_node("out"); // {"R1", "C1"}
// Handle-based introspection
NodeId nid = ckt.find_node("out");
DevId did = ckt.find_device("R1");
auto name = ckt.name(nid); // "out"
auto dinfo = ckt.device_info(did); // DeviceInfo struct
Python
pip install neospice
Prebuilt wheels are published for CPython 3.10–3.14 on Linux (x86_64, aarch64) and macOS Apple Silicon (arm64). On other platforms pip builds from the source distribution, which needs a C++20 compiler plus OpenBLAS and SLEEF.
import neospice as ns
import matplotlib.pyplot as plt
# One-liner convenience functions
dc = ns.dc("amplifier.cir")
print(dc.voltage("out"))
ac = ns.ac("filter.cir", mode="dec", npoints=100, fstart=1, fstop=1e9)
plt.semilogx(ac.frequency, ac.magnitude_db("out"))
tran = ns.transient("osc.cir", tstep=1e-9, tstop=1e-6)
plt.plot(tran.time, tran.voltage("out"))
# Parse inline netlists directly
dc = ns.dc("Divider\nV1 in 0 DC 10\nR1 in mid 1k\nR2 mid 0 1k\n.op\n.end\n")
print(dc.voltage("mid")) # 5.0
# Or use the full Simulator API
sim = ns.Simulator()
ckt = sim.load("amplifier.cir") # from file
ckt = sim.parse("...\n.op\n.end\n") # or from string
result = sim.run_ac(ckt, ns.ACMode.DEC, 100, 1, 1e9)
# Build circuits programmatically with typed methods
ckt = ns.Circuit()
ckt.V("V1", "in", "0", 0.0, 1.0) # DC=0, AC=1
ckt.R("R1", "in", "out", 1e3)
ckt.C("C1", "out", "0", 100e-12)
# SPICE engineering notation
from neospice import parse_value
r = parse_value("4.7k") # 4700.0
All result vectors are returned as NumPy arrays.
Browser simulation
Build neospice.wasm and its JavaScript module with Emscripten. The included
Worker demo supports netlist editing, DC/AC/transient simulation and resistor
sliders. Build instructions, JS/TypeScript API and limits.
Gradients and interactive updates
Use Simulator.sensitivity() for DC adjoint Jacobians and sensitivity_ac()
for linear-circuit complex AC gradients. Supported parameters and examples.
For repeated component changes, Circuit.update_param() with re_solve() or
re_solve_ac() reuses per-circuit symbolic factorization. Incremental workflow.
Parallel parameter studies
Run independent parameter corners with neospice.sweep() or seeded variations
with neospice.monte_carlo(). The C++ API provides Simulator::run_sweep() and
Simulator::monte_carlo(). Results preserve job order and report per-job errors.
See parallel studies for examples, correlation,
statistics, reproducibility and concurrency limits.
Performance
The paired benchmark covers 34 fixed workloads: small circuits, amplifier macromodels, larger resistor meshes and diode ladders, and RC/diode-RC analyses. Every accepted timing requires valid, accuracy-qualified results from both engines. The protocol records load, analysis/result materialization, cleanup and total time with equal sampling and alternating execution order.
See benchmark methods for reproduction and the progress tracker for completed evidence and active runs. Historical timings from the former harness are archived; they lack the corrected qualification protocol and must not support performance claims. Performance analysis explains the limits.
Netlist Compatibility
Beyond core devices and analyses, neospice handles the usual deck directives and syntax:
.paramexpressions with arithmetic, functions (sqrt,log,exp,sin,if, ...).subckt/.endswith parameter defaults (recursion limit 100).include/.libwith section selection and circular-inclusion detection.global,.ic,.nodeset,.options,.func,.save- SPICE suffixes:
T,G,MEG,k,m,u,n,p,f
Project Structure
cli/ Command-line interface
include/
neospice/ Public API headers (types.hpp, neospice.hpp, measure.hpp)
src/
api/ C++ API (Simulator, typed device methods, measurement utils)
core/ Analysis engines and linear solvers
devices/ 32 device models, each self-contained with factory registration
parser/ Netlist parser and expression evaluator
output/ Raw file writer
python/
bindings.cpp nanobind C++ → Python bridge
neospice/ Python package (convenience API, SPICE notation parser)
tests/
unit/ Unit tests for all components (970+)
devices/ Per-device validation against ngspice
circuits/ Integration test netlists
python/ Python binding tests
bench/ Performance benchmarks
docs/ Architecture, performance, and design documentation
tools/ Device migration tooling (ngspice model auto-porter)
Examples
Comparator Relaxation Oscillator
A TLV3201-based Schmitt trigger oscillator simulated with the Python API. Comparator relaxation oscillator.
Contributing
See docs/building.md for platform-specific setup instructions, including building libngspice from source on macOS.
Documentation
- Performance comparison with ngspice
- Algorithmic differences from ngspice
- Device migration status
- Capabilities overview
- Architecture and design
Roadmap
| Phase | Feature | Status |
|---|---|---|
| — | Handle-based API redesign (NodeId/DevId, typed methods, dense results, measurements) | Done |
| 1 | Python bindings (nanobind, PyPI wheels, typed construction) | Done |
| 2 | Parallel parameter sweeps / Monte Carlo | Implemented — API and limits |
| 3 | WebAssembly build for browser simulation | Implemented — build and browser API |
| 4 | Adjoint sensitivity / gradient computation | Initial API implemented — scope |
| 5 | Incremental re-simulation | Initial API implemented — scope |
| 6 | GPU-accelerated simulation (CUDA) | Planned |
| 7 | Extended devices (BSIM-CMG, legacy MOS) | Ongoing |
| 8 | PWL (piecewise-linear) simulation for switching converters | Planned |
| 9 | Digital event simulation | Planned |
| 10 | Mixed-signal co-simulation | Planned |
| 11 | Verilog-A device models (syntax not yet supported) | Planned |
| 12 | ML-guided DC convergence — learned initial-guess predictor (GNN) to seed Newton | Research |
See docs/ROADMAP.md for details.
Credits & SPICE lineage
neospice descends from the Berkeley SPICE family. It is an independent C++20 reimplementation, but its solver, analysis flow, and device models are derived — in many places translated — from UC Berkeley SPICE3 and ngspice. We gratefully acknowledge that lineage:
- L. W. Nagel and D. O. Pederson, "SPICE (Simulation Program with Integrated Circuit Emphasis)," Memorandum No. ERL-M382, UC Berkeley, April 1973.
- L. W. Nagel, "SPICE2: A Computer Program to Simulate Semiconductor Circuits," Memorandum No. ERL-M520, UC Berkeley, May 1975.
- SPICE2G6 (1983) — the Fortran reference release.
- SPICE3F5 (UC Berkeley, 1990s) — the BSD-licensed C rewrite that neospice's core and device code is translated from.
- ngspice — the maintained SPICE3F5 descendant, used as the reference/ground-truth implementation that neospice is validated against.
The NeoSolver sparse-LU stack derives from Kenneth Kundert's Sparse 1.3 (UC Berkeley). The separate in-tree minimum-degree ordering explicitly maintains the elimination graph and uses the default dense-vertex threshold from SuiteSparse AMD; it does not implement SuiteSparse AMD's quotient-graph algorithm.
Original project contributions use the MIT license. Derived SPICE code and device models retain applicable upstream notices and terms. See NOTICE, CREDITS.md, and the distribution audit.
The JOSS benchmark protocol and its current qualification failures are documented in paired benchmark methods. Historical standalone benchmark timings are not yet publication evidence.
Metadata
Release files for neospice 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| neospice-0.2.0.tar.gz | 19.0 MB | With provenance | Details for neospice-0.2.0.tar.gz |
Built distributions (wheels)
Total release size: 176.5 MB
Release files / neospice-0.2.0.tar.gz
| Download URL | neospice-0.2.0.tar.gz |
|---|---|
| Size | 19.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bd6adc1da2e2dd3a2d57bbd6669cbd02765a2641410cd0db0f96ea3ca8cd8725
|
|
BLAKE2b-256 checksum How to use checksums |
18c0f22de1578b5ce58f3efcbe55748904b5c8a258a189ba33ac3c917207da6d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logRelease files / neospice-0.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | neospice-0.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 14.4 MB |
| Tags | CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
86e9be9a794cfff51b513ca3c69089aae5cd48bdff58b9286858e800c9e1acf6
|
|
BLAKE2b-256 checksum How to use checksums |
98aee28cd87552bc98b98d18e4c77309b44b8a2827eaf17753f00c5e3c4f569b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logRelease files / neospice-0.2.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
| Download URL | neospice-0.2.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 7.0 MB |
| Tags | CPython 3.14 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
bc9a24e5ab4286588eee160cc003e6a753bff6d23b5d88f52edd8e7c2cb6714a
|
|
BLAKE2b-256 checksum How to use checksums |
13a97e5527c3b08afc9f60a79eb749332888cd4c396fc394f73676258954f047
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logRelease files / neospice-0.2.0-cp314-cp314-macosx_14_0_arm64.whl
| Download URL | neospice-0.2.0-cp314-cp314-macosx_14_0_arm64.whl |
|---|---|
| Size | 10.1 MB |
| Tags | CPython 3.14 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d4c5204baf9c2515792d4e0b5e780f5d018ca5a0b6b72c733fd2ffca44ee522b
|
|
BLAKE2b-256 checksum How to use checksums |
262785c069b01331b56d0263478c981aad82521cbb09874b92eee2d159ddfb4c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logRelease files / neospice-0.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | neospice-0.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 14.4 MB |
| Tags | CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
9f0614901ec068060d26f40ecbab82348c68440436fc489bf483fdac8b5f828f
|
|
BLAKE2b-256 checksum How to use checksums |
5c2f1d65af422eda273f6042512543ba1648576976fd393f74e1c8697f68899a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logRelease files / neospice-0.2.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
| Download URL | neospice-0.2.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 7.0 MB |
| Tags | CPython 3.13 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
9b9f43950bdff70654fe5c123e2c4aceaf4423b7d687b448b5e2d79012b263bb
|
|
BLAKE2b-256 checksum How to use checksums |
f986036b7be6d98a71bd49838b67386ce6407571f771c14fba20a6c06e7115ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logRelease files / neospice-0.2.0-cp313-cp313-macosx_14_0_arm64.whl
| Download URL | neospice-0.2.0-cp313-cp313-macosx_14_0_arm64.whl |
|---|---|
| Size | 10.1 MB |
| Tags | CPython 3.13 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b68becdd4eecea9ab83c0294e613ea1d69ee369b4bbc0f08f152d0f88b915d05
|
|
BLAKE2b-256 checksum How to use checksums |
5af6ea50fa9ecd1a020a3876ed04b793a1f47a090609c5dfa9e8e9ac0195565b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logRelease files / neospice-0.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | neospice-0.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 14.4 MB |
| Tags | CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
0f7b8a817e5f80baa180ad504c3141d837e7b4dbbd411647da3688417b4ae6d6
|
|
BLAKE2b-256 checksum How to use checksums |
19145cf0de66bb6efe9872531cc1911df33f2bd30afebcd5a56ad0c5f5c96a36
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logRelease files / neospice-0.2.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
| Download URL | neospice-0.2.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 7.0 MB |
| Tags | CPython 3.12 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
55e8843903dbcc41b54029b6eb2c87d3a0cef33595d5e10c0efa496ac8631de7
|
|
BLAKE2b-256 checksum How to use checksums |
9ddc22da2d30a56fcd21865e91cef81ff16226f2559fddb42a1633f50ff2df35
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logRelease files / neospice-0.2.0-cp312-cp312-macosx_14_0_arm64.whl
| Download URL | neospice-0.2.0-cp312-cp312-macosx_14_0_arm64.whl |
|---|---|
| Size | 10.1 MB |
| Tags | CPython 3.12 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
2b1415c84712efa3ce8721eadcb0a290c4df79190330b27368690da2f7af2b34
|
|
BLAKE2b-256 checksum How to use checksums |
7b59e068844a7693a31790893c83eb7d7463e4044b21852b22033f5b48f08068
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logRelease files / neospice-0.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | neospice-0.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 14.4 MB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
3615541f515a8c8a1f484c5f38401e6631c49362389b6191c593724a1c1a6bfa
|
|
BLAKE2b-256 checksum How to use checksums |
8a008ead333a8f141c668aa882d1ff27abf3872e0e8fd5ad14fa819c32f744b4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logRelease files / neospice-0.2.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
| Download URL | neospice-0.2.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 7.0 MB |
| Tags | CPython 3.11 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
69d90147228437d513da108b09a3058d6512eae4a2eec0043402f70e9dc582af
|
|
BLAKE2b-256 checksum How to use checksums |
13d1a9cc1990604dbd878093fd0efcdf1681c3dda8e9fade8d2cc7b8862ff2e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logRelease files / neospice-0.2.0-cp311-cp311-macosx_14_0_arm64.whl
| Download URL | neospice-0.2.0-cp311-cp311-macosx_14_0_arm64.whl |
|---|---|
| Size | 10.1 MB |
| Tags | CPython 3.11 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5fca67297c409e8b5f1e4ac6cb41d4345a95c0734a1eb23bdd3fc13b8d7cf3a8
|
|
BLAKE2b-256 checksum How to use checksums |
d511c90eb968b5ff52ba3664cc058a105478a57fda0380ade79af6748f57a298
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logRelease files / neospice-0.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | neospice-0.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 14.4 MB |
| Tags | CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
094950b96f93e2060b866f82e1300e568cc82cba83da79bcd294ccce38d74d31
|
|
BLAKE2b-256 checksum How to use checksums |
7975916b8bbb4683297ed81d7d3693298d52ff98b91ae1cc5ee0f67e645b2d5d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logRelease files / neospice-0.2.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
| Download URL | neospice-0.2.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 7.0 MB |
| Tags | CPython 3.10 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
4516f9dea6e177d02f6468419b756ecaa2423e64089cedc5bf98be848c5f40e2
|
|
BLAKE2b-256 checksum How to use checksums |
fac178c4869a7b67efa4a8492ff4e67543ec336ee7a35f6a5f55a244291f1e08
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logRelease files / neospice-0.2.0-cp310-cp310-macosx_14_0_arm64.whl
| Download URL | neospice-0.2.0-cp310-cp310-macosx_14_0_arm64.whl |
|---|---|
| Size | 10.1 MB |
| Tags | CPython 3.10 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
afa1a5f7e383a98a371d9c4c376248095f79c1f308a450e0b978e525ce161d5a
|
|
BLAKE2b-256 checksum How to use checksums |
a80e8f4da3f558767a418d36fcf9b3651a20adc16ded84d054759904bc3a8094
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logSecurity for neospice 0.2.0
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.
Full provenance
All 16 files in this release have been uploaded with provenance metadata.
Attestation for neospice-0.2.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logA 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.
To learn more about protecting yourself from malicious actors, visit our package security documentation.