Library with a Tigris object-storage implementation of LangGraph checkpoint saver, with zero-copy bucket-fork branching.
Project description
LangGraph Tigris Checkpoint
Implementation of a LangGraph BaseCheckpointSaver that persists agent state in
Tigris globally-distributed object storage over
the S3 API (sync and async), plus a zero-copy bucket-fork helper for instant
branching of an entire thread's checkpoint lineage.
Why Tigris
- Durable, global, cheap state — checkpoints live in globally-replicated object storage with no egress fees.
- Instant branching —
fork()creates a zero-copy fork of the bucket, so an agent's entire checkpoint history can be branched in O(1) for parallel experiments, evals, or what-if exploration. Writes to the fork are isolated from the source. - Pure object store — no separate database to operate. "Latest checkpoint" is found via a sorted list under strong consistency; conditional writes are available for idempotency/CAS.
Bucket requirement
Use a Single-region or Multi-region Tigris bucket. These provide strong, globally consistent reads, lists, and conditional operations, which this saver relies on. Global and Dual-region buckets give only eventual cross-region consistency and can return stale "latest" results.
Install
pip install langgraph-checkpoint-tigris
Usage
from langgraph.checkpoint.tigris import TigrisSaver
# Credentials from the standard AWS env chain
# (AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY), endpoint defaults to Tigris.
with TigrisSaver.from_conn_string("my-bucket") as checkpointer:
checkpointer.setup()
graph = builder.compile(checkpointer=checkpointer)
graph.invoke({"messages": [...]}, {"configurable": {"thread_id": "1"}})
Async:
from langgraph.checkpoint.tigris.aio import AsyncTigrisSaver
async with AsyncTigrisSaver.from_conn_string("my-bucket") as checkpointer:
await checkpointer.setup()
graph = builder.compile(checkpointer=checkpointer)
await graph.ainvoke({"messages": [...]}, {"configurable": {"thread_id": "1"}})
Instant branching with forks
with TigrisSaver.from_conn_string("prod-agent-state") as checkpointer:
# Branch the ENTIRE bucket (all threads/checkpoints) instantly.
experiment = checkpointer.fork("experiment-run-42")
# `experiment` is an isolated TigrisSaver; writes here never touch prod.
Object layout
{prefix}checkpoints/{thread}/{ns}/{checkpoint_id}/manifest.json
{prefix}checkpoints/{thread}/{ns}/{checkpoint_id}/checkpoint.bin
{prefix}checkpoints/{thread}/{ns}/{checkpoint_id}/writes/{task_id}/{idx}.bin
Checkpoints are immutable and uniquely keyed; checkpoint_ids are time-sortable
so the latest is max(...) of a prefix listing — no mutable HEAD pointer.
Development
cd libs/checkpoint-tigris
uv sync
make format && make lint && make test # unit tests run without creds
# Full suite (conformance + integration + fork) needs a live Tigris bucket:
TIGRIS_TEST_BUCKET=my-bucket \
AWS_ACCESS_KEY_ID=... AWS_SECRET_ACCESS_KEY=... \
make test
Integration, conformance, and fork tests are skipped automatically when those
environment variables are absent. The pure key-layout unit tests
(tests/test_keys.py) always run.
Status
The synchronous and asynchronous savers, the copy_thread/acopy_thread
branching capability, and the zero-copy fork() helper are implemented and
pass the LangGraph checkpointer conformance suite
(langgraph-checkpoint-conformance) against a live Tigris bucket. The pure
key-layout and manifest logic are additionally unit-tested offline.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file langgraph_checkpoint_tigris-0.1.0.tar.gz.
File metadata
- Download URL: langgraph_checkpoint_tigris-0.1.0.tar.gz
- Upload date:
- Size: 183.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6ee266a2f82ce6b94d826081c864aed6f02c9b726f5f278e76880326c1dd63f
|
|
| MD5 |
ff8554f8dd6e099992d196a9de22ff7b
|
|
| BLAKE2b-256 |
5a0b54dc8e6c0ca3fc0058e213529a5f48f29ed1271c6afcb4124a583d089f49
|
Provenance
The following attestation bundles were made for langgraph_checkpoint_tigris-0.1.0.tar.gz:
Publisher:
release.yml on tigrisdata/tigris-langgraph
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
langgraph_checkpoint_tigris-0.1.0.tar.gz -
Subject digest:
d6ee266a2f82ce6b94d826081c864aed6f02c9b726f5f278e76880326c1dd63f - Sigstore transparency entry: 1926948507
- Sigstore integration time:
-
Permalink:
tigrisdata/tigris-langgraph@f9c4c853c92a51dcf7ae128985c99bc9cd94f562 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/tigrisdata
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f9c4c853c92a51dcf7ae128985c99bc9cd94f562 -
Trigger Event:
push
-
Statement type:
File details
Details for the file langgraph_checkpoint_tigris-0.1.0-py3-none-any.whl.
File metadata
- Download URL: langgraph_checkpoint_tigris-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e434082eec038843c2fd23b84a2709d85811e296263eced8c97bcbcafeb805c1
|
|
| MD5 |
5b15b00c5a6d7d5822fb707ba4bb2723
|
|
| BLAKE2b-256 |
4345b738b906031e975c68138c6121d7886299805996ca548c0c72827f448a8f
|
Provenance
The following attestation bundles were made for langgraph_checkpoint_tigris-0.1.0-py3-none-any.whl:
Publisher:
release.yml on tigrisdata/tigris-langgraph
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
langgraph_checkpoint_tigris-0.1.0-py3-none-any.whl -
Subject digest:
e434082eec038843c2fd23b84a2709d85811e296263eced8c97bcbcafeb805c1 - Sigstore transparency entry: 1926948921
- Sigstore integration time:
-
Permalink:
tigrisdata/tigris-langgraph@f9c4c853c92a51dcf7ae128985c99bc9cd94f562 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/tigrisdata
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f9c4c853c92a51dcf7ae128985c99bc9cd94f562 -
Trigger Event:
push
-
Statement type: