@@ -11,36 +11,70 @@ repository = "https://github.com/bbqsrc/box"
1111crate-type = [" rlib" ]
1212
1313[dependencies ]
14+ # Core dependencies (no_std compatible)
1415box-fst.workspace = true
1516byteorder.workspace = true
16- mmap-io.workspace = true
17- tokio = { workspace = true , features = [" fs" , " io-util" , " sync" ] }
18- tokio-util = { workspace = true , features = [" compat" ] }
19- async-walkdir.workspace = true
20- futures.workspace = true
21- blake3 = { workspace = true , features = [" traits-preview" , " rayon" , " mmap" ] }
22- hex.workspace = true
23- pathdiff.workspace = true
24- unic-normal.workspace = true
25- unic-ucd.workspace = true
26- relative-path.workspace = true
27- fastvint = { workspace = true , features = [" async-tokio" ] }
28- tracing.workspace = true
29- serde_json.workspace = true
30- lru.workspace = true
31- thiserror.workspace = true
32- digest.workspace = true
33- sysinfo.workspace = true
34- tempfile.workspace = true
35- string-interner.workspace = true
17+ fastvint.workspace = true
18+ hashbrown = " 0.15"
19+
20+ # Std-only dependencies
21+ mmap-io = { workspace = true , optional = true }
22+ tokio = { workspace = true , features = [" fs" , " io-util" , " sync" ], optional = true }
23+ tokio-util = { workspace = true , features = [" compat" ], optional = true }
24+ async-walkdir = { workspace = true , optional = true }
25+ futures = { workspace = true , optional = true }
26+ blake3 = { workspace = true , features = [" traits-preview" , " rayon" , " mmap" ], optional = true }
27+ hex = { workspace = true , optional = true }
28+ pathdiff = { workspace = true , optional = true }
29+ unic-normal = { workspace = true , optional = true }
30+ unic-ucd = { workspace = true , optional = true }
31+ relative-path = { workspace = true , optional = true }
32+ tracing = { workspace = true , optional = true }
33+ serde_json = { workspace = true , optional = true }
34+ lru = { workspace = true , optional = true }
35+ thiserror = { workspace = true , optional = true }
36+ digest = { workspace = true , optional = true }
37+ sysinfo = { workspace = true , optional = true }
38+ tempfile = { workspace = true , optional = true }
39+ string-interner = { workspace = true , optional = true }
3640xattr = { workspace = true , optional = true }
3741zstd = { workspace = true , optional = true }
3842zstd-safe = { workspace = true , optional = true }
3943xz2 = { workspace = true , optional = true }
4044
4145[features ]
42- default = [" xz" , " zstd" , " writer" , " reader" , " xattr" ]
43- reader = []
46+ default = [" std" , " xz" , " zstd" , " writer" , " reader" , " xattr" ]
47+
48+ # no_std support
49+ std = [
50+ " alloc" ,
51+ " box-fst/std" ,
52+ " dep:mmap-io" ,
53+ " dep:tokio" ,
54+ " dep:tokio-util" ,
55+ " dep:async-walkdir" ,
56+ " dep:futures" ,
57+ " dep:blake3" ,
58+ " dep:hex" ,
59+ " dep:pathdiff" ,
60+ " dep:unic-normal" ,
61+ " dep:unic-ucd" ,
62+ " dep:relative-path" ,
63+ " dep:tracing" ,
64+ " dep:serde_json" ,
65+ " dep:lru" ,
66+ " dep:thiserror" ,
67+ " dep:digest" ,
68+ " dep:sysinfo" ,
69+ " dep:tempfile" ,
70+ " dep:string-interner" ,
71+ ]
72+ alloc = [" box-fst/alloc" ]
73+
74+ # Minimal kernel build (core parsing only)
75+ kernel = [" alloc" ]
76+
77+ reader = [" std" ]
4478writer = [" reader" ]
4579
4680xz = [" dep:xz2" ]
@@ -50,6 +84,7 @@ xattr = ["dep:xattr"]
5084[workspace ]
5185resolver = " 3"
5286members = [" cli" , " crates/*" ]
87+ exclude = [" kmod/rust" ]
5388
5489[workspace .dependencies ]
5590# Shared dependencies
@@ -120,5 +155,5 @@ block2 = "0.6"
120155
121156# Workspace crates
122157box-format = { version = " 0.4.0" , path = " ." }
123- box-fst = { version = " 0.1.0" , path = " crates/fst" }
158+ box-fst = { version = " 0.1.0" , path = " crates/fst" , default-features = false }
124159mimalloc = { version = " 0.1" , features = [" v3" ] }
0 commit comments