Skip to main content

High-performance Rust implementation of LangGraph components

Project description

Fast-LangGraph

CI PyPI License: MIT

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.

Project Metadata

Examples

See the examples/ directory for complete working examples:

  • function_cache_example.py - Caching patterns
  • profiler_example.py - Performance analysis
  • state_merge_example.py - State manipulation

Contributing

Contributions welcome! See documentation/docs/development/contributing.md for setup instructions.

License

MIT

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

fast_langgraph-0.1.13.tar.gz (342.4 kB view details)

Uploaded Source

Built Distributions

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

fast_langgraph-0.1.13-cp37-abi3-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.7+Windows x86-64

fast_langgraph-0.1.13-cp37-abi3-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.7+musllinux: musl 1.2+ x86-64

fast_langgraph-0.1.13-cp37-abi3-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.7+musllinux: musl 1.2+ ARM64

fast_langgraph-0.1.13-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.7+manylinux: glibc 2.17+ x86-64

fast_langgraph-0.1.13-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.7+manylinux: glibc 2.17+ ARM64

fast_langgraph-0.1.13-cp37-abi3-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.7+macOS 11.0+ ARM64

fast_langgraph-0.1.13-cp37-abi3-macosx_10_12_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.7+macOS 10.12+ x86-64

File details

Details for the file fast_langgraph-0.1.13.tar.gz.

File metadata

  • Download URL: fast_langgraph-0.1.13.tar.gz
  • Upload date:
  • Size: 342.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fast_langgraph-0.1.13.tar.gz
Algorithm Hash digest
SHA256 a1c33572c8930ce2d3f0df9abd7992b84df004384de84b185fc02b664a95a799
MD5 ddded587afa0f9e7926a192592244bbf
BLAKE2b-256 d15e9965a34684e7eb7d3ce4f5e71a5b81ad78c28711758bc11a50af55c91048

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_langgraph-0.1.13.tar.gz:

Publisher: publish.yml on neul-labs/fast-langgraph

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

File details

Details for the file fast_langgraph-0.1.13-cp37-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for fast_langgraph-0.1.13-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8bcb118983610bbce583d5ed42f2aa1cf6d565da3a2824ff33ad6f142f081bf3
MD5 85ae932cf22963ec75c1b8eda5e42135
BLAKE2b-256 3012a01ffcfc152c992f7c3232c23af3bad1787cb88717bb13b3ba0a1b992423

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_langgraph-0.1.13-cp37-abi3-win_amd64.whl:

Publisher: publish.yml on neul-labs/fast-langgraph

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

File details

Details for the file fast_langgraph-0.1.13-cp37-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for fast_langgraph-0.1.13-cp37-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 487fdef53c9d1e6107b9f8078ef043321baa0e7707d429505af6b1e7614237c2
MD5 855adf504f6111504e56cccf083fd885
BLAKE2b-256 a480b70c6b1536f410ac85c90396794e1c3cfbdd5370babd5a4e4a3e00c920ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_langgraph-0.1.13-cp37-abi3-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on neul-labs/fast-langgraph

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

File details

Details for the file fast_langgraph-0.1.13-cp37-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for fast_langgraph-0.1.13-cp37-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9d23a80a899b4191d789382381858bbb0ec4d5c8bdde403cbfd4fbb98e5bf005
MD5 20ed80ee0a4b421cb47269114dc359c5
BLAKE2b-256 402c1c5a795397cb94976b3478318144749086dfe131750a6cfd38f7b452b18e

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_langgraph-0.1.13-cp37-abi3-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on neul-labs/fast-langgraph

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

File details

Details for the file fast_langgraph-0.1.13-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fast_langgraph-0.1.13-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d43ab88508daac34fa8a4a986ed3697ed1f022f43aba5c5fdde3439f1dc4e47f
MD5 177c9636026a52d7ab513ade968ca4ed
BLAKE2b-256 8edf95055514d846494bced77f6f905b115ac8a47ef84e55dc2f91cd0bb00e7f

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_langgraph-0.1.13-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on neul-labs/fast-langgraph

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

File details

Details for the file fast_langgraph-0.1.13-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for fast_langgraph-0.1.13-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f85c1b352e82fb5bb3bb1107d680cb08612107cd87151b99f5cdbacf7d509edb
MD5 6b3c8ab8d955886a57690522c09f93bd
BLAKE2b-256 999dd0b63b81c365fd40a5179f5b51254545fd65f216b09f174995207a6b3c52

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_langgraph-0.1.13-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on neul-labs/fast-langgraph

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

File details

Details for the file fast_langgraph-0.1.13-cp37-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fast_langgraph-0.1.13-cp37-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b25aded7c1520a60592591435ffff235dfa3da20137b674886fbb01e7f3b9298
MD5 f35473071e06c0811aaedc4532d6ee86
BLAKE2b-256 4109259bbb266b64d8c8d708992c3e079075125da2f5752d63eec9ded3ef3a33

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_langgraph-0.1.13-cp37-abi3-macosx_11_0_arm64.whl:

Publisher: publish.yml on neul-labs/fast-langgraph

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

File details

Details for the file fast_langgraph-0.1.13-cp37-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for fast_langgraph-0.1.13-cp37-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d62730894f8865cb94a95896a059305826db1eeac30362b69e8fd8377e1bd542
MD5 0e395a335d05c6e480fbcb8f8131dc69
BLAKE2b-256 209bf39beb37360b56055e0a19e253d27ea0cd075c9aff9b5bf8aab8a114cbdd

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_langgraph-0.1.13-cp37-abi3-macosx_10_12_x86_64.whl:

Publisher: publish.yml on neul-labs/fast-langgraph

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