Skip to content

快速开始

添加依赖

Cargo.toml 中添加 Talon:

toml
[dependencies]
talon = { git = "https://github.com/darkmice/talon.git" }

嵌入式模式

rust
use talon::Talon;

fn main() -> Result<(), talon::Error> {
    // 打开(或创建)数据库
    let db = Talon::open("./my-data")?;

    // SQL 引擎
    db.run_sql("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)")?;
    db.run_sql("INSERT INTO users VALUES (1, 'Alice', 30)")?;
    let rows = db.run_sql("SELECT * FROM users WHERE age > 25")?;
    println!("查询结果: {:?}", rows);

    // KV 引擎
    db.kv()?.set(b"hello", b"world", None)?;
    let val = db.kv_read()?.get(b"hello")?;
    println!("KV 值: {:?}", val);

    // 向量引擎
    db.run_sql("CREATE TABLE docs (id INTEGER PRIMARY KEY, emb VECTOR(384))")?;
    db.run_sql("CREATE VECTOR INDEX idx ON docs(emb) USING HNSW")?;

    // 全文搜索引擎
    db.fts()?.index_doc("articles", &FtsDoc {
        id: "doc1".into(),
        fields: vec![("content".into(), "Talon 是 AI 原生数据库".into())],
    })?;

    // AI 引擎
    let ai = db.ai()?;
    ai.create_session("chat-001", Default::default(), None)?;

    Ok(())
}

服务端模式

启动 Talon Server:

bash
talon-server --data ./my-data --http-port 8080 --tcp-port 9090 --redis-port 6380

HTTP API 调用

bash
# SQL 查询
curl -X POST http://localhost:8080/api/sql \
  -H 'Content-Type: application/json' \
  -d '{"sql": "SELECT * FROM users"}'

# KV 操作
curl -X POST http://localhost:8080/api/kv/set \
  -d '{"key": "hello", "value": "world"}'

# 向量搜索
curl -X POST http://localhost:8080/api/vector/search \
  -d '{"index": "idx", "vector": [0.1, 0.2, ...], "k": 10}'

Redis 客户端

bash
redis-cli -p 6380
127.0.0.1:6380> SET user:1 '{"name":"Alice"}'
OK
127.0.0.1:6380> GET user:1
"{\"name\":\"Alice\"}"

九大引擎概览

引擎获取方式用途
SQLdb.run_sql()关系型查询
KVdb.kv()? / db.kv_read()?键值缓存
时序db.create_timeseries()时间序列
消息队列db.mq()?消息发布/消费
向量db.vector(name)?ANN 近似搜索
全文搜索db.fts()?BM25 搜索
GEOdb.geo()?地理空间
db.graph()?图遍历/分析
AIdb.ai()?会话/记忆/RAG

下一步

Released under the MIT License.