[package]
name = "memex-rs"
version = "0.0.1-beta.2"
edition = "2021"
description = "Memex - Claude Code session history manager (Rust backend)"
[lib]
name = "memex"
crate-type = ["cdylib", "rlib"]
[[bin]]
name = "memex"
path = "src/main.rs"
required-features = ["cli"]
[features]
default = ["cli"]
cli = ["notify", "notify-debouncer-mini", "axum", "tower-http", "tokio-cron-scheduler"]
ffi = []
[dependencies]
# HTTP 框架 (CLI only)
axum = { version = "0.8", optional = true }
tower-http = { version = "0.6", features = ["cors", "fs"], optional = true }
# 异步运行时
tokio = { version = "1", features = ["full", "sync"] }
# HTTP 客户端 (Ollama)
reqwest = { version = "0.12", features = ["json"] }
# 数据库
rusqlite = { version = "0.32", features = ["bundled", "vtab"] }
# 向量数据库
lancedb = "0.15"
arrow-array = "53"
arrow-schema = "53"
# 序列化
serde = { version = "1", features = ["derive"] }
serde_json = "1"
# 文件监听 (CLI only)
# 禁用 crossbeam feature 避免与 tokio 冲突导致 100% CPU
notify = { version = "8", optional = true, default-features = false, features = ["macos_fsevent"] }
notify-debouncer-mini = { version = "0.6", optional = true, default-features = false }
# 定时任务 (CLI only)
tokio-cron-scheduler = { version = "0.13", optional = true }
# AI 会话收集
ai-cli-session-collector = { git = "https://github.com/vimo-ai/AI-cli-session-collector" }
# 共享数据库(ETerm/Vlaude 数据统一层)
claude-session-db = { path = "../../ETerm/claude-session-db", features = ["writer", "reader", "search", "coordination"] }
# 工具
anyhow = "1"
thiserror = "2"
tracing = "0.1"
sha2 = "0.10"
tracing-subscriber = { version = "0.3", features = ["env-filter", "time"] }
time = { version = "0.3", features = ["formatting", "macros"] }
dirs = "5"
chrono = { version = "0.4", features = ["serde"] }
uuid = { version = "1", features = ["v4"] }
walkdir = "2"
percent-encoding = "2"
futures = "0.3"
async-trait = "0.1"
regex = "1"
libc = "0.2"
[profile.release]
lto = true
codegen-units = 1
strip = true
opt-level = "z"