1#![doc = include_str!("../README.md")]
10#![warn(missing_docs)]
66#![cfg_attr(
68 test,
69 allow(
70 clippy::large_stack_arrays,
71 clippy::doc_markdown,
72 clippy::uninlined_format_args,
73 clippy::single_match_else,
74 clippy::cast_lossless,
75 clippy::manual_assert
76 )
77)]
78
79#[cfg(feature = "persistence")]
80pub mod agent;
81pub mod alloc_guard;
82#[cfg(test)]
83mod alloc_guard_tests;
84pub mod api_types;
85pub mod cache;
86pub mod collection;
90#[cfg(feature = "persistence")]
91pub mod column_store;
92#[cfg(all(test, feature = "persistence"))]
93mod column_store_tests;
94pub mod compression;
95pub mod config;
96pub mod config_quantization;
97#[cfg(test)]
98mod config_tests;
99mod config_validation;
100pub mod conformance;
102pub mod contiguous_ops;
103mod contiguous_resize;
104pub mod distance;
105#[cfg(test)]
106mod distance_tests;
107pub mod error;
108#[cfg(test)]
109mod error_tests;
110#[cfg(feature = "test-fault-injection")]
111pub mod fault_injection;
112pub mod filter;
113#[cfg(test)]
114mod filter_like_tests;
115#[cfg(test)]
116mod filter_tests;
117pub mod fusion;
118pub mod gpu;
119#[cfg(test)]
120mod gpu_tests;
121#[cfg(feature = "persistence")]
122pub mod guardrails;
123#[cfg(all(test, feature = "persistence"))]
124mod guardrails_tests;
125pub mod half_precision;
126#[cfg(test)]
127mod half_precision_tests;
128#[cfg(feature = "persistence")]
129pub mod index;
130#[cfg(feature = "internal-bench")]
131#[doc(hidden)]
132pub mod internal_bench;
133#[cfg(all(test, feature = "internal-bench"))]
134mod internal_bench_tests;
135pub mod lock_rank;
136pub mod metrics;
137#[cfg(test)]
138mod metrics_tests;
139pub mod perf_optimizations;
140#[cfg(test)]
141mod perf_optimizations_tests;
142pub mod point;
143#[cfg(test)]
144mod point_tests;
145pub mod quantization;
146#[cfg(test)]
147mod quantization_tests;
148pub mod scored_result;
149pub mod simd_dispatch;
150#[cfg(test)]
151mod simd_dispatch_tests;
152#[cfg(test)]
153mod simd_epic073_tests;
154pub mod sparse_index;
156pub mod simd_native;
158#[cfg(test)]
159mod simd_native_tests;
160#[cfg(target_arch = "aarch64")]
161pub mod simd_neon;
162#[cfg(target_arch = "aarch64")]
163pub mod simd_neon_prefetch;
164#[cfg(test)]
166mod simd_prefetch_x86_tests;
167#[cfg(test)]
168mod simd_tests;
169#[cfg(feature = "persistence")]
170pub mod storage;
171pub mod sync;
172#[cfg(all(test, feature = "persistence"))]
173mod test_fixtures;
174#[cfg(all(not(target_arch = "wasm32"), feature = "update-check"))]
175pub mod update_check;
176pub mod validation;
177pub mod vector_ref;
178#[cfg(test)]
179mod vector_ref_tests;
180pub mod velesql;
181pub mod wire;
183
184#[cfg(all(not(target_arch = "wasm32"), feature = "update-check"))]
185pub use update_check::{check_for_updates, spawn_update_check};
186#[cfg(all(not(target_arch = "wasm32"), feature = "update-check"))]
187pub use update_check::{compute_instance_hash, UpdateCheckConfig};
188
189#[cfg(feature = "persistence")]
190pub use index::{HnswIndex, HnswParams, SearchQuality, VectorIndex};
191
192#[cfg(feature = "persistence")]
193pub use collection::streaming::{BackpressureError, StreamIngester, StreamingConfig};
194#[cfg(feature = "persistence")]
195pub use collection::{
196 AnyCollection,
198 CollectionDiagnostics,
200 CollectionType,
202 EdgeType,
204 GraphCollection,
205 GraphEdge,
206 GraphNode,
207 GraphSchema,
208 IndexHealth,
210 IndexInfo,
211 MetadataCollection,
212 NodeType,
213 OrderByIndexState,
215 OrderByIndexSuggestion,
216 ScrollBatch,
218 TraversalConfig,
219 TraversalPath,
220 TraversalResult,
221 ValueType,
222 VectorCollection,
223 EXPIRES_AT_KEY,
225};
226pub use contiguous_ops::pad_to_simd_width;
227pub use distance::{DistanceMetric, CONDITION_TYPE_NAMES, DISTANCE_METRIC_NAMES};
228pub use error::{Error, Result};
229pub use filter::{Condition, Filter};
230pub use lock_rank::{assert_lock_order, LockRank};
231pub use point::{ComponentScores, Point, SearchResult};
232pub use quantization::{
233 cosine_similarity_quantized, cosine_similarity_quantized_simd, dot_product_quantized,
234 dot_product_quantized_simd, euclidean_squared_quantized, euclidean_squared_quantized_simd,
235 BinaryQuantizedVector, QuantizationCodec, QuantizedVector, StorageMode, STORAGE_MODE_NAMES,
236};
237pub use scored_result::ScoredResult;
238pub use validation::{
239 validate_collection_name, validate_dimension, validate_dimension_match,
240 MAX_COLLECTION_NAME_LENGTH, MAX_DIMENSION, MIN_DIMENSION,
241};
242pub use wire::stable_hash::{hash_edge_id, hash_id, hash_id_bytes};
251
252#[cfg(feature = "persistence")]
253pub use column_store::{
254 BatchUpdate, BatchUpdateResult, BatchUpsertResult, ColumnStore, ColumnStoreError, ColumnType,
255 ColumnValue, ExpireResult, StringId, StringTable, TypedColumn, UpsertResult,
256};
257pub use config::{
264 ConfigError, HnswConfig, LimitsConfig, QuantizationConfig, QuantizationType, SearchConfig,
265 SearchMode, VelesConfig,
266};
267#[cfg(feature = "persistence")]
268pub use config::{LoggingConfig, ServerConfig, StorageConfig};
269pub use fusion::{
270 FusionError, FusionStrategy, DEFAULT_WEIGHTED_AVG_WEIGHT, DEFAULT_WEIGHTED_HIT_WEIGHT,
271 DEFAULT_WEIGHTED_MAX_WEIGHT,
272};
273#[cfg(feature = "persistence")]
274pub use guardrails::QueryLimits;
275pub use metrics::{
276 average_metrics, compute_latency_percentiles, hit_rate, mean_average_precision, mrr, ndcg_at_k,
277 precision_at_k, recall_at_k, LatencyStats,
278};
279pub use metrics::{
280 DurationHistogram, GuardRailsMetrics, OperationalMetrics, QueryStats, TraversalMetrics,
281};
282
283#[cfg(feature = "persistence")]
284mod database;
285#[cfg(feature = "persistence")]
286pub mod observer;
287
288#[cfg(feature = "persistence")]
289pub use database::{Database, GatedRead};
290#[cfg(feature = "persistence")]
291pub use observer::DatabaseObserver;
292#[cfg(feature = "persistence")]
293pub use observer::{AccessDecision, AccessScope, QueryAccessContext, QueryOperationKind};
294#[cfg(feature = "persistence")]
295pub use storage::DurabilityMode;