swarmstate
Drop-in state backend for LangGraph, CrewAI & custom agent loops - Rust core, framework-agnostic, built for production.
Constant-time checkpoint reads —
get_tuplestays at ~7 µs whether a thread holds 5 or 2 000 checkpoints, where LangGraph'sInMemorySaverclimbs from ~5 µs to ~40 µs — and O(1) state snapshots: ~0.5 µs at any size, against 50 ms todeepcopya 50 000-entry state. Durable writes land on par withSqliteSaverat the same fsync policy (~1.9× faster than its shipped default, which buys stronger durability). Method, hardware and raw numbers →benchmarks/.
swarmstate is a state and checkpointing backend with a Rust core and a Python API for multi-agent
systems. It does not compete with visible agent frameworks; it acts as low-level infrastructure - much
like engines such as DuckDB, ClickHouse, Arrow, or Polars sit underneath data applications without
replacing them.
It solves three production pains:
- State lock-in across frameworks - a framework-agnostic store so migrating frameworks doesn't lose state.
- Checkpoint reads that get slower as threads grow - a Rust-backed implementation of LangGraph's checkpointer interface that resolves "the latest checkpoint" by lookup instead of scanning a thread's keys.
- Deterministic routing paid for in tokens - a native handoff graph that resolves rule-based transitions in microseconds.
Installation
pip install swarmstate # prebuilt abi3 wheels, no compiler required
uv add swarmstate # or with uv
Optional extras: swarmstate[langgraph], swarmstate[crewai], swarmstate[redis],
swarmstate[disk], swarmstate[postgres], swarmstate[otel], swarmstate[all].
Usage
import swarmstate as ss
store = ss.Store() # in-memory, msgpack codec
store.set("workflow", "onboarding", {"step": 3, "data": {...}})
snap = store.snapshot() # cheap, immutable snapshot
store.set("workflow", "onboarding", {"step": 4})
store.restore(snap) # rollback
store.get("workflow", "onboarding") # -> {"step": 3, "data": {...}}
snap2 = store.snapshot()
snap2.diff(snap) # {"added": [...], "removed": [...], "changed": [...]}
# Retention is opt-in: a snapshot the store keeps pins the state it saw
hist = ss.Store(max_history=10) # 0 (default) keeps none, None keeps all
hist.history() # -> [Snapshot, ...], oldest first
# Batch ops: one GIL release / round-trip for the whole set
store.set_many([("workflow", "a", {...}), ("workflow", "b", {...})])
store.get_many([("workflow", "a"), ("workflow", "b")]) # -> [..., ...], order preserved
# Deterministic, LLM-free routing (resolved natively in Rust)
g = ss.HandoffGraph()
g.add_edge("triage", "billing", when="category in ['billing', 'refund']")
g.add_edge("triage", "support", when="category not in ['spam'] and user.tier == 'gold'")
g.add_edge("triage", "human") # unconditional default
g.route("triage", {"category": "refund"}) # -> "billing"
# state can be a dict, any mapping, or a dataclass / Pydantic model
# Move state anywhere: between backends, or through a portable file
ss.copy_store(store, postgres_store) # e.g. prototype -> production
ss.dump_store(store, "state.swst") # survive a restart...
store = ss.load_store("state.swst") # ...and come back
Drop-in LangGraph checkpointer (pip install "swarmstate[langgraph]"):
from swarmstate.integrations.langgraph import SwarmStateSaver
graph = builder.compile(checkpointer=SwarmStateSaver()) # replaces SqliteSaver, 1 line
Bounded memory for long-running threads — checkpointers keep every step by default, which for a service that never restarts means growth without end:
saver = SwarmStateSaver(max_checkpoints_per_thread=8) # keep the newest N per thread
Older checkpoints are dropped with their pending writes and channel blobs. On a
300-invocation thread that is 0.5 MB instead of 28 MB, and the thread still
resumes; time travel is limited to the retained window, so size it to taste.
Graphs with DeltaChannel state also keep the checkpoints back to each channel's
last snapshot, since the newest value is rebuilt from them.
Thread management from LangGraph's checkpointer interface, which the reference savers leave unimplemented:
saver.copy_thread("thread-a", "thread-b") # full history, resumable
saver.prune(["thread-a"]) # keep the latest (DeltaChannel-aware)
saver.delete_for_runs(["run-123"]) # drop what one run wrote
Rule-based handoffs inside a LangGraph graph, with no LLM call and no routing code:
from swarmstate.integrations.langgraph import handoff_router
builder.add_conditional_edges("triage", handoff_router(g, "triage"), ["billing", "support", END])
With RedisStore or PostgresStore, the async methods (ainvoke, astream, ...)
await the backend natively instead of running each call in a worker thread.
Optional metrics on checkpoint operations (opt-in, zero overhead when unused):
from swarmstate.observability import InMemoryMetrics # or OpenTelemetryMetrics
metrics = InMemoryMetrics()
saver = SwarmStateSaver(metrics=metrics)
# ... run the graph ...
metrics.summary() # {"put": {"count": 12, "p50_ms": 0.006, ...}, "get_tuple": {...}}
OpenTelemetry tracing (each checkpoint op becomes a swarmstate.checkpoint.<op> span):
from swarmstate.observability import get_tracer # needs swarmstate[otel]
saver = SwarmStateSaver(tracer=get_tracer()) # composes with metrics=...
Status
Early development.
- M0 (scaffolding) ✅ - Rust core builds;
import swarmstateworks. - M1 (Rust store) ✅ - concurrent KV store, msgpack codec, O(1) immutable snapshots, incremental diffs, GIL released on hot paths.
- M2 (HandoffGraph) ✅ - deterministic conditional routing with a safe Rust condition
evaluator (no
eval), cycle detection. - M3 (LangGraph adapter) ✅ -
SwarmStateSaver, a drop-inBaseCheckpointSaverbacked by theStore; snapshot/roll back the whole checkpoint DB at once. - M4 (Benchmarks) ✅ - durable-vs-durable and in-memory-vs-in-memory comparisons on
LangGraph's interface, read latency as a thread grows,
Store.snapshot()vsdeepcopy, and concurrency scaling. Reproducible:benchmarks/run.py; method and results inbenchmarks/README.md. - M5 (CrewAI adapter + backends) ✅ - persistent, drop-in checkpointer backends
RedisStore,DiskStore(SQLite) andPostgresStore, all msgpack wire-format, plusSwarmStateStorage(portable memory backed by a sharedStore). - M6 (docs · wheels · PyPI) ✅ - full docs site, benchmarks, cross-platform abi3 wheels, and PyPI publishing via Trusted Publishing (OIDC).
- Observability ✅ - opt-in metrics hooks and OpenTelemetry tracing on checkpoint
ops (
put/put_writes/get_tuple): an in-memory sink, an OpenTelemetry metrics sink, and per-op spans (swarmstate[otel]). Zero overhead when unused. Strictmypyin CI. - Free-threaded (no-GIL) ready ✅ - the Rust core declares free-threaded support, so on
a free-threaded CPython build (
cp313t) the store doesn't collapse under threads the way the GIL build does: on a set+get workload at 8 threads it sustains ~1.8M ops/s vs ~130k on GIL Python (over 10x), where the GIL build gets much slower as threads are added. (These workloads are allocation-bound, so neither scales linearly with cores; the win is avoiding the GIL's collapse.) Version-specificcp313tandcp314twheels ship for Linux (x86_64/aarch64), macOS (arm64) and Windows (x64) alongside the abi3 ones. - Batch API ✅ -
Store.set_many/get_many(and on every backend) amortize the per-call overhead over a batch: one GIL release for the in-memory core, one round-trip for networked backends. On free-threaded at 8 threads,set_manyis ~3x the throughput of individual sets.SwarmStateSaveruses it internally:put_writes(and theincrementalchannel blobs) flush all writes of a step in a singleset_many, so fan-out steps that emit many pending writes pay one lock/round-trip instead of one per write.delete_many/delete_namespacedo the same for deletes (thread deletion, retention, pruning). - Thread management ✅ -
copy_thread,pruneanddelete_for_runsfrom LangGraph's checkpointer interface, plus a directget_delta_channel_history(2.2x faster than LangGraph's default walk withincremental=True). - Portability ✅ -
copy_storebetween any two backends,dump_store/load_storeto a portable msgpack file. - Native async ✅ -
RedisStoreandPostgresStoreexpose an async API thatSwarmStateSaver's async methods await directly.
Examples
Runnable, offline, deterministic demos in examples/:
support_triage.py- a LangGraph workflow tying togetherHandoffGraphrouting,SwarmStateSavercheckpointing and snapshot/restore time-travel.state_portability.py- state as standard msgpack bytes, read back and cross-checked against themsgpackpackage.
Documentation
Guide, tutorials and API reference: swarmstate.github.io
— the store,
snapshots & diffs,
the LangGraph checkpointer,
persistent backends,
the handoff graph and the
benchmark method. The site is built from
swarmstate/swarmstate.github.io.
Development
python -m venv .venv && source .venv/bin/activate
pip install maturin pytest
maturin develop --release # compile the Rust core and install it locally
cargo test # Rust core tests
pytest -q # Python API tests
Citing
If you use swarmstate in academic work, please cite it. GitHub's "Cite this
repository" button (from CITATION.cff) produces ready-made APA and
BibTeX entries. To cite the archived software release, use its Zenodo DOI
(10.5281/zenodo.22067264) — it always resolves
to the latest version:
@software{salmeron_swarmstate,
author = {Salmeron, Jose L.},
title = {{swarmstate}: A state and checkpointing backend for multi-agent
systems with a Rust core},
year = {2026},
publisher = {Zenodo},
doi = {10.5281/zenodo.22067264},
url = {https://github.com/swarmstate/swarmstate}
}
The DOI is minted when the first release is archived on Zenodo. Replacing
10.5281/zenodo.XXXXXXXX here, in CITATION.cff and on the docs site is
all it takes — the placeholder is deliberate, so that
nothing cites an identifier that does not resolve.
License
MIT
Metadata
Release files for swarmstate 0.12.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 |
|---|---|---|---|---|
| swarmstate-0.12.0.tar.gz | 164.6 kB | With provenance | Details for swarmstate-0.12.0.tar.gz |
Built distributions (wheels)
Total release size: 5.4 MB
Release files / swarmstate-0.12.0.tar.gz
| Download URL | swarmstate-0.12.0.tar.gz |
|---|---|
| Size | 164.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8d9ae6ef7811956e429b8856993903052535ae118dd908934c93d9d423e4c976
|
|
BLAKE2b-256 checksum How to use checksums |
6b4fb870c5d290c6fc41817ab2b547c00376dab4e9846af194b43f3301aebb14
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 29, 2026.
Transparency logRelease files / swarmstate-0.12.0-cp314-cp314t-win_amd64.whl
| Download URL | swarmstate-0.12.0-cp314-cp314t-win_amd64.whl |
|---|---|
| Size | 323.6 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Windows x86-64 |
|
SHA-256 checksum How to use checksums |
2e7e7dc92ac5d89242b8d571ae3b750ea9c7b5d232f4116e964c4677871d8be2
|
|
BLAKE2b-256 checksum How to use checksums |
04bf9cc62274e271d54cb5b41d42d69d62796ee8113ce581b3778c293ac8fb4c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 29, 2026.
Transparency logRelease files / swarmstate-0.12.0-cp314-cp314t-manylinux_2_34_x86_64.whl
| Download URL | swarmstate-0.12.0-cp314-cp314t-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 432.3 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
52458f5dadbaa0555e35b8cdfcd9007d50a5214c18eb30fe8648a4ab8392b159
|
|
BLAKE2b-256 checksum How to use checksums |
08b58e7fd39d31e19cfb83c553bc4c22b2a31495ccb7e8ffe715535bd8975be9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 29, 2026.
Transparency logRelease files / swarmstate-0.12.0-cp314-cp314t-manylinux_2_34_aarch64.whl
| Download URL | swarmstate-0.12.0-cp314-cp314t-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 421.0 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.34+ ARM64 |
|
SHA-256 checksum How to use checksums |
7c027bf5af946b51af999d5002b0372372d032726b94e55744177070d2305a61
|
|
BLAKE2b-256 checksum How to use checksums |
6c8bf9834899ce49cfb6d51cad80678ca6721eef87799d215302952a30bf15b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 29, 2026.
Transparency logRelease files / swarmstate-0.12.0-cp314-cp314t-macosx_11_0_arm64.whl
| Download URL | swarmstate-0.12.0-cp314-cp314t-macosx_11_0_arm64.whl |
|---|---|
| Size | 411.9 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
ecc2e68fd7d2380bf4b11aea6d90747f053847a5099dcb4df1546f3697a0aecc
|
|
BLAKE2b-256 checksum How to use checksums |
b5149600c98c6555c672905e92ae7502f7e0216bbe56ddf236d6d13ffca46355
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 29, 2026.
Transparency logRelease files / swarmstate-0.12.0-cp313-cp313t-win_amd64.whl
| Download URL | swarmstate-0.12.0-cp313-cp313t-win_amd64.whl |
|---|---|
| Size | 323.5 kB |
| Tags | CPython 3.13 CPython 3.13 free-threading Windows x86-64 |
|
SHA-256 checksum How to use checksums |
df585eb372de1ff2c7476f14ef95daf39a2f492ca07500175ad6749ea5dabd80
|
|
BLAKE2b-256 checksum How to use checksums |
a8efa06b1a53d6733ab6396622e58505902f5ca142965952355e554888338c12
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 29, 2026.
Transparency logRelease files / swarmstate-0.12.0-cp313-cp313t-manylinux_2_34_x86_64.whl
| Download URL | swarmstate-0.12.0-cp313-cp313t-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 432.2 kB |
| Tags | CPython 3.13 CPython 3.13 free-threading Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
6d9f067bc6c0c8ac7694c768869a873a3630c76f31761aa6d1ac82bd8777b0ce
|
|
BLAKE2b-256 checksum How to use checksums |
c2a0e7c1f3bcb7e9a985329211d332e8e37309db16bfe11705e7b28cae0c979c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 29, 2026.
Transparency logRelease files / swarmstate-0.12.0-cp313-cp313t-manylinux_2_34_aarch64.whl
| Download URL | swarmstate-0.12.0-cp313-cp313t-manylinux_2_34_aarch64.whl |
|---|---|
| Size | 421.0 kB |
| Tags | CPython 3.13 CPython 3.13 free-threading Linux glibc 2.34+ ARM64 |
|
SHA-256 checksum How to use checksums |
b761e6fc58e18c5f6885586058fbf23ee81416b789e927b3bf50795a54a8d7bd
|
|
BLAKE2b-256 checksum How to use checksums |
931105ee60f9936ccb72daa416da7eed6215146c51b23fa40f4384edfa2008ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 29, 2026.
Transparency logRelease files / swarmstate-0.12.0-cp313-cp313t-macosx_11_0_arm64.whl
| Download URL | swarmstate-0.12.0-cp313-cp313t-macosx_11_0_arm64.whl |
|---|---|
| Size | 411.9 kB |
| Tags | CPython 3.13 CPython 3.13 free-threading macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
1da2fa97a174d056e47aa567e467378af8bfed2a1c2432bdac30ef58b8dc08be
|
|
BLAKE2b-256 checksum How to use checksums |
2f0ed176bd9c357502cfb5b6be5f2e83738c7b900f541ca9748a8573da2469ea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 29, 2026.
Transparency logRelease files / swarmstate-0.12.0-cp39-abi3-win_amd64.whl
| Download URL | swarmstate-0.12.0-cp39-abi3-win_amd64.whl |
|---|---|
| Size | 333.9 kB |
| Tags | CPython 3.9 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
b498d919cbc3b7aae9c8b2ba2b04c9812730b3f09773b5556b6c99087232a89e
|
|
BLAKE2b-256 checksum How to use checksums |
d756321265d90200bf75429bc8f1fc06322e5c2d6ac528f05ab77711119823c8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 29, 2026.
Transparency logRelease files / swarmstate-0.12.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
| Download URL | swarmstate-0.12.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl |
|---|---|
| Size | 446.4 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
6f8277ffe517470c4140afd589712579f09144f21f9a3c15c0aa29041c8fbe93
|
|
BLAKE2b-256 checksum How to use checksums |
765b73675c3be92f495be74c86898f09e6261e56a342792c4dc08e28910a46e0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 29, 2026.
Transparency logRelease files / swarmstate-0.12.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
| Download URL | swarmstate-0.12.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl |
|---|---|
| Size | 441.2 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
478044bf1e5af0263f129257cd98ff9005d744b875895aac0eabf7d65c7cc2b0
|
|
BLAKE2b-256 checksum How to use checksums |
d5659a878e0a2655220cfc8c0ac9f7251e6c3f79c5e90ca4561d5ddedb6460f8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 29, 2026.
Transparency logRelease files / swarmstate-0.12.0-cp39-abi3-macosx_11_0_arm64.whl
| Download URL | swarmstate-0.12.0-cp39-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 418.2 kB |
| Tags | CPython 3.9 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d3fddad96fe1068ddd6dfeed8ab822973e200eed72c5a468da049837eaec1fd6
|
|
BLAKE2b-256 checksum How to use checksums |
4d11148cb6545a3988492740f0281c62b94402f7e2c5ae2d819a2c318119658b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 29, 2026.
Transparency logRelease files / swarmstate-0.12.0-cp39-abi3-macosx_10_12_x86_64.whl
| Download URL | swarmstate-0.12.0-cp39-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 441.0 kB |
| Tags | CPython 3.9 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
127797fb0117c640b91737a41c36f20ea9ee9c1d03582bdad22f8275b31a6a3f
|
|
BLAKE2b-256 checksum How to use checksums |
b05782635f8fad10807aff3771357bacf76639179abde2f11b973f66f8113575
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 29, 2026.
Transparency logSecurity for swarmstate 0.12.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 14 files in this release have been uploaded with provenance metadata.
Attestation for swarmstate-0.12.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 29, 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.