forked from unknown-studio-dev/hoangsa
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
118 lines (99 loc) · 3.88 KB
/
Copy pathCargo.toml
File metadata and controls
118 lines (99 loc) · 3.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
[workspace]
# resolver = "3" enables MSRV-aware dependency resolution — cargo will pick
# versions whose `rust-version` is <= ours (1.91, set below in
# `[workspace.package].rust-version`).
resolver = "3"
members = [
"crates/hoangsa-cli",
"crates/hoangsa-memory-core",
"crates/hoangsa-memory-parse",
"crates/hoangsa-memory-store",
"crates/hoangsa-memory-graph",
"crates/hoangsa-memory-policy",
"crates/hoangsa-memory-retrieve",
"crates/hoangsa-memory",
"crates/hoangsa-memory-mcp",
"crates/hoangsa-proxy",
"crates/hoangsa-ui-server",
]
[workspace.package]
version = "0.2.4"
edition = "2024"
rust-version = "1.91"
license = "MIT OR Apache-2.0"
repository = "https://github.com/pirumu/hoangsa.git"
authors = ["Than The Van"]
[workspace.dependencies]
# Internal crates
hoangsa-memory-core = { path = "crates/hoangsa-memory-core", version = "0.2.4" }
hoangsa-memory-parse = { path = "crates/hoangsa-memory-parse", version = "0.2.4" }
hoangsa-memory-store = { path = "crates/hoangsa-memory-store", version = "0.2.4" }
hoangsa-memory-graph = { path = "crates/hoangsa-memory-graph", version = "0.2.4" }
hoangsa-memory-policy = { path = "crates/hoangsa-memory-policy", version = "0.2.4" }
hoangsa-memory-retrieve = { path = "crates/hoangsa-memory-retrieve", version = "0.2.4" }
hoangsa-memory-mcp = { path = "crates/hoangsa-memory-mcp", version = "0.2.4" }
# Async + error handling
tokio = { version = "1.43", features = ["macros", "rt-multi-thread", "fs", "sync", "time", "io-util"] }
async-trait = "0.1.83"
thiserror = "2"
anyhow = "1.0.89"
# Serde
serde = { version = "1.0.210", features = ["derive"] }
serde_json = "1.0.128"
toml = "0.8.19"
# Logging
tracing = "0.1.40"
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
# Utility
uuid = { version = "1.10", features = ["v4", "serde"] }
time = { version = "0.3.36", features = ["serde", "formatting", "parsing", "macros"] }
blake3 = "1.5"
parking_lot = "0.12"
futures = "0.3"
# CLI
clap = { version = "4.5", features = ["derive"] }
# Storage
redb = "4.0.0"
tantivy = "0.26.0"
rusqlite = { version = "0.39.0", features = ["bundled"] }
# Concurrency / FS notifications
dashmap = "6"
notify = "6.1"
# Embeddings (replaces Python ChromaDB sidecar).
# `fastembed` runs ONNX in-process via `ort`; we pin to the multilingual
# model family so Vietnamese retrieval quality matches English. Defaults
# pull `native-tls` (OpenSSL) which breaks the cross-docker CI images —
# swap to rustls so the release workflow doesn't need libssl-dev.
fastembed = { version = "5", default-features = false, features = [
"hf-hub-rustls-tls",
"ort-download-binaries-rustls-tls",
"image-models",
] }
# HTTP (provider adapters; rustls so no OpenSSL headers on CI boxes)
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls", "gzip"] }
# Dev
tempfile = "3.13"
# Global allocator for the daemon. jemalloc's per-arena decay returns
# freed pages to the OS within ~10 s by default, which keeps RSS honest
# after the embedder is evicted (libmalloc / glibc ptmalloc otherwise
# hoard fragmented arenas for the process lifetime). Skipped on MSVC —
# the crate doesn't build there. See `crates/hoangsa-memory/src/main.rs`.
tikv-jemallocator = { version = "0.6" }
[profile.release]
opt-level = 3
lto = "thin"
codegen-units = 1
strip = "symbols"
[profile.dev]
opt-level = 0
debug = true
# Compile a handful of heavy dependencies with light optimisation even in
# debug builds (libsqlite3-sys + tantivy dominate `cargo test` wall time).
[profile.dev.package.libsqlite3-sys]
opt-level = 1
[profile.dev.package.tantivy]
opt-level = 1
[profile.dev.package.tantivy-columnar]
opt-level = 1
[profile.dev.package.tantivy-sstable]
opt-level = 1