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

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

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 docs/DEVELOPMENT.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.0.tar.gz (320.3 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.0-cp37-abi3-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.7+Windows x86-64

fast_langgraph-0.1.0-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.0-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.0-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.0-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.0-cp37-abi3-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.7+macOS 11.0+ ARM64

fast_langgraph-0.1.0-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.0.tar.gz.

File metadata

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

File hashes

Hashes for fast_langgraph-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8cf8e48370c02aa2f878b0af053a4fd72381b41d219e92f88129c9e584e33c02
MD5 6da90896db9fa4b4842dbc2112caea3b
BLAKE2b-256 4f9c99ffcb76f53e3736e9111b576ef99d532dc411370f081bec2593bfae0834

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_langgraph-0.1.0.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.0-cp37-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for fast_langgraph-0.1.0-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5d8d1f219e55d08483e94d542491a12cfcc69635ed3e9d7c75121dec70d36f68
MD5 f18eddcd9f23226b15ca3b24f11f5272
BLAKE2b-256 524017a884a5604a4e5144af4688691abc892b13a8d8fa28bc4b328a6322aaec

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_langgraph-0.1.0-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.0-cp37-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for fast_langgraph-0.1.0-cp37-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5f39d391ea96f0a163aa3055bedfd235b65971107ddaa506cd207bec3edc19f2
MD5 e7cfd87f46a7bcd9bc1eb31cbe54cc77
BLAKE2b-256 1cccbd61e65c290042b0280a3f3cf35e82b0637273b39f90c9189026911070e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_langgraph-0.1.0-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.0-cp37-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for fast_langgraph-0.1.0-cp37-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d1bf0ce39a629a1083d7e1b603674471fb71e4231e5bbdae39cf7b02628a61fd
MD5 f1bfdb6b5dd366d68465358fd2222f15
BLAKE2b-256 24b228ed51e3b460d8c3fe82718e7bec1b85da7c63adba1719fbe701f8a8dde4

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_langgraph-0.1.0-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.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fast_langgraph-0.1.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3bcee76c2d2fde7493ffb04b5677a850fba9a01d83ed50dd43b476f0a129f9f4
MD5 5bf51216eee5d053ae12c97b512c71f2
BLAKE2b-256 dbd5d7e829c398e0940e1a358740e3070c55a5c7e7b601d16973d4db9c2f5572

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_langgraph-0.1.0-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.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for fast_langgraph-0.1.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fd031cca40900b4bd6b3616f67a604515de1a2a45c7a05a2fc8a39daa98f2654
MD5 e0483a55b7c4fc83c5f2dd9473b537ae
BLAKE2b-256 a1ffdbdda45c5660aa7f8886a5b3ab53787452ca4764773f7fc336da06d510c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_langgraph-0.1.0-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.0-cp37-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fast_langgraph-0.1.0-cp37-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c57b991d2b26eec7de605b60104f8ac6c4b997c1db8862c1773f9a9e75dd2f73
MD5 7950cb6afd271f4bc284256585754de6
BLAKE2b-256 ad1c5f83a05970916909537797a2da5213de7d09ff6e105e082b4a7552c5fcdd

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_langgraph-0.1.0-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.0-cp37-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for fast_langgraph-0.1.0-cp37-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 10ce48b2edbf21f7a10a1b83a5c1dc1dc3cb857c491c880b2c3cf014ebc6e644
MD5 bec1a0f958ed5b290e932c550dc4f013
BLAKE2b-256 02dec76c38bf43076d17f52b6607f51b667b5c15557e211b1ae756a6502aadb2

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_langgraph-0.1.0-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