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.12.tar.gz (345.5 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.12-cp37-abi3-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.7+Windows x86-64

fast_langgraph-0.1.12-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.12-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.12-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.12-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.6 MB view details)

Uploaded CPython 3.7+manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.7+macOS 11.0+ ARM64

fast_langgraph-0.1.12-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.12.tar.gz.

File metadata

  • Download URL: fast_langgraph-0.1.12.tar.gz
  • Upload date:
  • Size: 345.5 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.12.tar.gz
Algorithm Hash digest
SHA256 4b0fe9bc42da9859d13c427e2f493ae91e6998cf91a75ca847c46062882d6260
MD5 8817b9350cf66ce18e2585356beef2a5
BLAKE2b-256 c21761129a8a5a694b8c9472109379799d82e1435904bebe7881350f3ba141d2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for fast_langgraph-0.1.12-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 a50541edbd53751e14da4bb30b7589c461cb82c000786d9912ea18655b42a73d
MD5 c15a2e9ebe49cda128ebccc6d0c30f48
BLAKE2b-256 7528c394b4fc159d8b237f5a741d46a90061e23ece70baf95bff1321c99dd001

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for fast_langgraph-0.1.12-cp37-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c16974f9531b060d6e9a97e248d564498a2536481fffd598dc2a1a4d6a23acc1
MD5 b03104b69d18866d29697403ed62ff02
BLAKE2b-256 439365a3106725dd3299f508560261b0993d1e6e268094d2c80085ea7166123b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for fast_langgraph-0.1.12-cp37-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fa325a69b89c83eacbde68302a4abe6719bc850a832595fd2595a550ab9305fd
MD5 15beac20d858de82976d7cc3dafa726d
BLAKE2b-256 377a61930bc7c6d9e3dcd0588527c422535a2256964d1b6a028d06115aad08a3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for fast_langgraph-0.1.12-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 af2c06cc368adf42a5dafac05b8b7cff94aa5fb5f206852261a99da83463bb8f
MD5 7cb1bfcea5d43dcabd8871e60ceede04
BLAKE2b-256 093a5e58ab92c566807bba49aca85477be9b40f039bc26d65ab710561b27ed40

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for fast_langgraph-0.1.12-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3eee302bc4d0bce6f5202f235d81014fc4fdaaecdf17b95c7bf1832780029e4e
MD5 44d7c4def76c1ae7924a200cd987733b
BLAKE2b-256 3bf5f4ba8643c63713f228a3ff2c99f4c32b037c64b8ed3cfd6f77afbbff8c72

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for fast_langgraph-0.1.12-cp37-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 07dcabaf6a257652e5416da271e8e9b02e5b0b268435d57accf71345bc7e687a
MD5 69e07635ea11c45bd4e68fc1020a4763
BLAKE2b-256 e9883351d6384dcb5334496c791d2f51338b89727dee7a95eedbc396c7507d64

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for fast_langgraph-0.1.12-cp37-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ffed0f9bde9b96e4cd5c2443c8c7a6d3b52d2be056cf651724439aa6b4e039a3
MD5 e7885c13146507df1409bdaec3d978b4
BLAKE2b-256 1a5d7dc8acdc8486787006aca990ab398bfdf0c70132bf570f016c562ca5d3a7

See more details on using hashes here.

Provenance

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