Fast-LangGraph
High-performance Rust accelerators for LangGraph applications. Drop-in components that provide up to 700x speedups for checkpoint operations and 10-50x speedups for state management.
Why Fast-LangGraph?
LangGraph is great for building AI agents, but production workloads often hit performance bottlenecks:
- Checkpoint serialization - Python's deepcopy is slow for complex state
- State management at scale - High-frequency updates accumulate overhead
- Repeated LLM calls - Identical prompts waste API costs
Fast-LangGraph solves these by reimplementing critical paths in Rust while maintaining full API compatibility.
Install
pip install fast-langgraph
or
uv add fast-langgraph
Acceleration Modes
Fast-LangGraph offers two types of acceleration:
Automatic Acceleration (via Shim)
Enable transparent acceleration with a single environment variable or function call. No code changes required to your existing LangGraph application.
# Option 1: Environment variable (recommended for production)
export FAST_LANGGRAPH_AUTO_PATCH=1
python your_app.py
# Option 2: Explicit patching at startup
import fast_langgraph
fast_langgraph.shim.patch_langgraph()
# Your existing LangGraph code runs faster automatically
What gets accelerated automatically:
| Component | Speedup | Description |
|---|---|---|
| Executor Caching | 2.3x | Reuses ThreadPoolExecutor across invocations |
| apply_writes | 1.2x | Rust-based channel batch updates |
Combined automatic speedup: ~2.8x for typical graph invocations.
Check acceleration status:
import fast_langgraph
fast_langgraph.shim.print_status()
Manual Acceleration (Explicit Usage)
For maximum performance, use Rust components directly. These require small code changes but provide the largest speedups.
from fast_langgraph import (
RustSQLiteCheckpointer, # 5-6x faster checkpointing
cached, # LLM response caching
langgraph_state_update, # Fast state merging
)
| Component | Speedup | When to Use |
|---|---|---|
RustSQLiteCheckpointer |
5-6x | State persistence |
@cached decorator |
10x+ | Repeated LLM calls (with 90% hit rate) |
langgraph_state_update |
13-46x | High-frequency state updates |
Quick Start
1. Automatic Acceleration (Easiest)
# At the top of your application
import fast_langgraph
fast_langgraph.shim.patch_langgraph()
# Rest of your code unchanged - runs 2-3x faster
from langgraph.graph import StateGraph
# ...
2. Fast Checkpointing (Biggest Impact)
Drop-in replacement for LangGraph's SQLite checkpointer:
from fast_langgraph import RustSQLiteCheckpointer
# 5-6x faster than the default checkpointer
checkpointer = RustSQLiteCheckpointer("state.db")
graph = graph.compile(checkpointer=checkpointer)
3. LLM Response Caching
Cache LLM responses to avoid redundant API calls:
from fast_langgraph import cached
@cached(max_size=1000)
def call_llm(prompt):
return llm.invoke(prompt)
# First call: hits the API (~500ms)
response = call_llm("What is LangGraph?")
# Second identical call: returns from cache (~0.01ms)
response = call_llm("What is LangGraph?")
# Check cache statistics
print(call_llm.cache_stats())
# {'hits': 1, 'misses': 1, 'size': 1}
4. Optimized State Updates
Efficient state merging for high-frequency updates:
from fast_langgraph import langgraph_state_update
new_state = langgraph_state_update(
current_state,
{"messages": [new_message]},
append_keys=["messages"]
)
5. Performance Profiling
Find bottlenecks with minimal overhead:
from fast_langgraph.profiler import GraphProfiler
profiler = GraphProfiler()
with profiler.profile_run():
result = graph.invoke(input_data)
profiler.print_report()
Performance
Rust's Key Strengths
These are the operations where Rust provides the most dramatic improvements:
| Operation | Speedup | Best Use Case |
|---|---|---|
| Checkpoint Serialization | 43-737x | State persistence (scales with state size) |
| Sustained State Updates | 13-46x | Long-running graphs with many steps |
| E2E Graph Execution | 2-3x | Production workloads with checkpointing |
All Features
| Feature | Performance | Use Case |
|---|---|---|
| Complex Checkpoint (250KB) | 737x faster than deepcopy | Large agent state |
| Complex Checkpoint (35KB) | 178x faster | Medium state |
| LLM Response Caching | 10x speedup (90% hit rate) | Repeated prompts, RAG |
| Function Caching | 1.6x speedup | Expensive computations |
| In-Memory Checkpoint | 1.4 us/op | Fast state snapshots |
| LangGraph State Update | 1.4 us/op | High-frequency updates |
Note: Rust excels at complex state operations. For simple dict operations, Python's built-in dict (implemented in C) is already highly optimized. See BENCHMARK.md for detailed results.
Requirements
- Python 3.9+
- Works with any LangGraph version
Documentation
Authoritative docs live under documentation/docs/ and power the MkDocs site.
- Getting Started - Installation + first run
- User Guide - Automatic/manual acceleration details
- API Reference - Python + Rust surface area
- Architecture - Internal design + trade-offs
- Contributing - Tooling, tests, and release flow
Project Metadata
- Author: Dipankar Sarkar (me@dipankar.name)
- Organization: Neul Labs
- Repository: https://github.com/neul-labs/fast-langgraph
- License: MIT
Examples
See the examples/ directory for complete working examples:
function_cache_example.py- Caching patternsprofiler_example.py- Performance analysisstate_merge_example.py- State manipulation
Contributing
Contributions welcome! See documentation/docs/development/contributing.md for setup instructions.
License
MIT
Metadata
Release files for fast-langgraph 0.1.15
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fast_langgraph-0.1.15.tar.gz | 370.6 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| fast_langgraph-0.1.15-cp37-abi3-win_amd64.whl | CPython 3.7 | abi3 | Windows x86-64 | Details |
| fast_langgraph-0.1.15-cp37-abi3-musllinux_1_2_x86_64.whl | CPython 3.7 | abi3 | Linux musl 1.2+ x86-64 | Details |
| fast_langgraph-0.1.15-cp37-abi3-musllinux_1_2_aarch64.whl | CPython 3.7 | abi3 | Linux musl 1.2+ ARM64 | Details |
| fast_langgraph-0.1.15-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.7 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| fast_langgraph-0.1.15-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | CPython 3.7 | abi3 | Linux glibc 2.17+ ARM64 | Details |
| fast_langgraph-0.1.15-cp37-abi3-macosx_11_0_arm64.whl | CPython 3.7 | abi3 | macOS 11.0+ ARM64 | Details |
| fast_langgraph-0.1.15-cp37-abi3-macosx_10_12_x86_64.whl | CPython 3.7 | abi3 | macOS 10.12+ x86-64 | Details |
Total release size: 12.9 MB
Release files / fast_langgraph-0.1.15.tar.gz
| Download URL | fast_langgraph-0.1.15.tar.gz |
|---|---|
| Size | 370.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a93d18ee830e251180f955868845b936b7eb605c3bca3a1711337995d4d7fb96
|
|
BLAKE2b-256 checksum How to use checksums |
9e37fe3ab77734613077b2fd6507a579b74af746048dd9d1aec5d8814fa58ad2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 May 6, 2026.
Transparency logRelease files / fast_langgraph-0.1.15-cp37-abi3-win_amd64.whl
| Download URL | fast_langgraph-0.1.15-cp37-abi3-win_amd64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.7 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
c1430f4685e9a4f9775452dda3e65a8f070c39730b7ed067fa6da7d32ac20a92
|
|
BLAKE2b-256 checksum How to use checksums |
bdabbf6401b7829bf914bee515a48c25f246fa276aba1fb130fa293f184b4256
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 May 6, 2026.
Transparency logRelease files / fast_langgraph-0.1.15-cp37-abi3-musllinux_1_2_x86_64.whl
| Download URL | fast_langgraph-0.1.15-cp37-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 2.1 MB |
| Tags | CPython 3.7 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
5a5d37089f55f58c619ec252b745c4ff2082c93f3a6ef7ad7889531fa69f95cb
|
|
BLAKE2b-256 checksum How to use checksums |
c27afb81c3953b3c1eb5cf33c2eada149a66d419b3f258593e390965bbf29e7b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 May 6, 2026.
Transparency logRelease files / fast_langgraph-0.1.15-cp37-abi3-musllinux_1_2_aarch64.whl
| Download URL | fast_langgraph-0.1.15-cp37-abi3-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 2.0 MB |
| Tags | CPython 3.7 Linux musl 1.2+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
e883ce55521261e82683e09b8b23ed7859bf5e508a5ceaece7072c530d91683a
|
|
BLAKE2b-256 checksum How to use checksums |
b6426edbb55502a5b78db103468ded65056a607100b1258adc79482b287da181
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 May 6, 2026.
Transparency logRelease files / fast_langgraph-0.1.15-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | fast_langgraph-0.1.15-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.7 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
66a674552e7fb4a1bd97ca280a7786e83242626fccda213e092fb5345d200faf
|
|
BLAKE2b-256 checksum How to use checksums |
7a1db181ff492afdd3186862537e03de947a37354dc42ae85294d392c950c103
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 May 6, 2026.
Transparency logRelease files / fast_langgraph-0.1.15-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | fast_langgraph-0.1.15-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.7 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
febb3583741f439ed48a8b0a2105a60acd90c540741f6e71ceaa70e5ed3db8dd
|
|
BLAKE2b-256 checksum How to use checksums |
bdec51f3af26b531120fd6af1dc81e97aefc801194f127e017743396e26c03e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 May 6, 2026.
Transparency logRelease files / fast_langgraph-0.1.15-cp37-abi3-macosx_11_0_arm64.whl
| Download URL | fast_langgraph-0.1.15-cp37-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.7 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d9c3ee8363e4ca5945b9821fcf235301f183eddaf2631dafbe449a071b21a91e
|
|
BLAKE2b-256 checksum How to use checksums |
a78a99e603da931824d8f4f4eae353b43e7de4c6b65fec061d887d714f3082f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 May 6, 2026.
Transparency logRelease files / fast_langgraph-0.1.15-cp37-abi3-macosx_10_12_x86_64.whl
| Download URL | fast_langgraph-0.1.15-cp37-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 1.7 MB |
| Tags | CPython 3.7 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
92bc11cbb5f7c4ce43312cb36e92d420032866bd9e62cde29710b9a3c9e21f62
|
|
BLAKE2b-256 checksum How to use checksums |
9121b9b1ed50b65dc1788d987a46b6087098a92836c8e586cd723fc0f16e4150
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 May 6, 2026.
Transparency log