langgraph-checkpoint-sqlite-native
v0.0.2
Published
LangGraph Checkpoint saver using native SQLite for Node.js and Bun.
Maintainers
Readme
🌟 Why this package?
The official LangGraph SQLite checkpoint saver relies on better-sqlite3, which requires Python, a C++ toolchain, and node-gyp to compile. This often leads to frustrating installation issues across different environments and CI/CD pipelines.
This library solves this by using the built-in native SQLite modules introduced in recent JS runtimes (node:sqlite and bun:sqlite).
✨ Key Features
- 🚫 Zero Native Dependencies: Say goodbye to
node-gypbuild errors and prebuild binaries. - ⚡️ Blazing Fast: Direct use of built-in runtime modules for maximum performance.
- 🌍 Multi-Runtime: Optimized and ready for Node.js, Bun, and Deno.
- 🔌 Drop-in Replacement: 100% compatible with the
@langchain/langgraphcheckpointer interface.
📦 Installation
Choose your favorite package manager:
npm install langgraph-checkpoint-sqlite-native
# or
bun add langgraph-checkpoint-sqlite-native
# or
pnpm add langgraph-checkpoint-sqlite-nativeNote for Node.js users: This package requires Node.js 22.5.0 or higher to use the built-in
node:sqlitemodule.
🚀 Usage
The library provides specific classes optimized for your runtime.
Node.js & Deno
import { SqliteSaver } from "langgraph-checkpoint-sqlite-native/nodejs";
const saver = SqliteSaver.fromConnString(":memory:");Bun
import { SqliteSaver } from "langgraph-checkpoint-sqlite-native/bun";
const saver = SqliteSaver.fromConnString(":memory:");🛠️ Complete Example with LangGraph
import { StateGraph, START, END } from "@langchain/langgraph";
import { NodejsSqliteSaver } from "langgraph-checkpoint-sqlite-native";
// 1. Initialize the saver
const saver = NodejsSqliteSaver.fromConnString(":memory:");
// 2. Define your StateGraph
const graph = new StateGraph({
channels: {
messages: {
value: (x, y) => x.concat(y),
default: () => [],
}
}
})
.addNode("agent", () => ({ messages: ["Hello from the agent!"] }))
.addEdge(START, "agent")
.addEdge("agent", END);
// 3. Compile with the checkpointer
const app = graph.compile({ checkpointer: saver });📦 安装
使用您最喜欢的包管理器:
npm install langgraph-checkpoint-sqlite-native
# 或者
bun add langgraph-checkpoint-sqlite-native
# 或者
pnpm add langgraph-checkpoint-sqlite-nativeNode.js 用户请注意: 此包依赖 Node.js 内置的
node:sqlite模块,因此需要 Node.js 22.5.0 及以上版本。
🚀 使用方法
本库为不同的运行时提供了经过优化的特定类。
Node.js & Deno
import { SqliteSaver } from "langgraph-checkpoint-sqlite-native/nodejs";
const saver = SqliteSaver.fromConnString(":memory:");Bun
import { SqliteSaver } from "langgraph-checkpoint-sqlite-native/bun";
const saver = SqliteSaver.fromConnString(":memory:");🛠️ 配合 LangGraph 使用的完整示例
import { StateGraph, START, END } from "@langchain/langgraph";
import { NodejsSqliteSaver } from "langgraph-checkpoint-sqlite-native";
// 1. 初始化 saver
const saver = NodejsSqliteSaver.fromConnString(":memory:");
// 2. 定义您的 StateGraph
const graph = new StateGraph({
channels: {
messages: {
value: (x, y) => x.concat(y),
default: () => [],
}
}
})
.addNode("agent", () => ({ messages: ["Hello from the agent!"] }))
.addEdge(START, "agent")
.addEdge("agent", END);
// 3. 携带 checkpointer 编译图
const app = graph.compile({ checkpointer: saver });