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
[]
= ["Ash Vardanian <1983160+ashvardanian@users.noreply.github.com>"]
# Not `external-ffi-bindings`: that is for a library built elsewhere, and `c/` is vendored and built by `build.rs`.
= ["text-processing", "hardware-support", "no-std", "wasm"]
= "Search, hash, sort, fingerprint, and fuzzy-match strings faster via SWAR, SIMD, and GPGPU"
= "https://docs.rs/stringzilla"
= "2021"
= "https://ashvardanian.com/posts/stringzilla/"
# Leading slashes anchor to the package root; Cargo matches these like gitignore. No `forkunion/**`: `build.rs` reads
# those headers from `DEP_FORKUNION_INCLUDE`, exported by the `forkunion` crate.
= [
"/rust/**",
"/c/**",
"/include/**",
"/probes/**",
"/build.rs",
"/LICENSE",
]
= ["simd", "search", "retrieval", "hash", "sort"]
= "Apache-2.0"
# The bundled C sources export global `sz_*` symbols, so `links` makes Cargo refuse a graph holding two copies of this
# crate. It adds exclusivity to resolution only; the linking itself stays in `build.rs`.
= "stringzilla"
= "stringzilla"
= true
= "https://github.com/ashvardanian/StringZilla"
# The `Byteset` mutators are `const fn` taking `&mut self`, which needs `const_mut_refs`, stable since 1.83.
= "1.83"
= "5.1.0"
[]
= "stringzilla"
= "rust/lib.rs"
[]
= ["std", "dynamic-dispatch"]
= []
# Runtime SIMD dispatch: compile every ISA tier and pick the best one at load via the dispatch table
# (mirrors CMake's `stringzilla_shared`). Disable (`--no-default-features`) to resolve the tier at
# compile time instead - the analog of the header-only `stringzilla_header`.
= [
"std", # std is required for multi-threaded backend
"dep:allocator-api2",
"dep:stringtape",
"dep:forkunion", # Compiles and links the thread-pool runtime; StringZillas only consumes its C API
] # Multi-threaded CPU backend (StringZillas)
= ["std", "cpus"] # CUDA GPU backend (includes multi-threaded CPU backend)
= []
= ["std", "cpus"] # ROCm GPU backend (includes multi-threaded CPU backend)
[]
= { = "0.4", = true}
= { = "3.0", = true}
= { = "2.4.2", = true}
[]
= "1.2.47"
[]
# Catch platform-specific type issues like `c_char` differences
= "warn"
# Catch potential FFI issues
= "warn"
# Catch undefined behavior with pointers
= "warn"
# Catch transmute issues
= "warn"
[]
# Catch ABI mismatches in FFI
= "warn"
# Catch platform-specific code that might fail on other targets
= "warn"
[]
# Align the optimized build with the CMake and Python builds at -O2; `build.rs` forwards this `OPT_LEVEL`
# to `cc` for the bundled C/C++ sources. -O3's aggressive inlining bloats the heavy `utf8_uncased`
# translation unit (~3 MB object, ~44s to compile) with no measured runtime win. `dev` keeps the default
# -O0 so clean builds stay fast.
= 2