├── .gitignore ├── Cargo.toml ├── LICENSE ├── README.md ├── docs ├── Binaries.md ├── PythonUsage.md ├── RunExperiments.md └── RustUsage.md ├── experiments └── ecir2025 │ ├── dense_ms_marco_dragon.toml │ ├── dense_ms_marco_star.toml │ ├── dense_sift1m.toml │ ├── pq_ms_marco_dragon.toml │ └── sparse_ms_marco_splade.toml ├── imgs ├── kannolo.png └── kannolo_with_text.jpeg ├── notebooks ├── build_and_search_on_large_dataset.ipynb ├── kannolo_demo_dense_plain.ipynb └── kannolo_demo_sparse.ipynb ├── pyproject.toml ├── rust-toolchain.toml ├── scripts ├── compare_reports.py ├── convert_bin_to_npy_arrays.py ├── convert_npy_arrays_to_bin.py ├── requirements.txt └── run_experiments.py └── src ├── bin ├── compute_groundtruth.rs ├── hnsw_build.rs └── hnsw_search.rs ├── clustering └── kmeans │ └── mod.rs ├── datasets ├── dataset.rs ├── dense_dataset.rs ├── sparse_dataset.rs └── utils.rs ├── distances.rs ├── distances ├── dot_product.rs ├── euclidean_distance.rs └── simd │ ├── distances.rs │ ├── transpose.rs │ └── utils.rs ├── graph.rs ├── index_serializer └── mod.rs ├── indexes ├── graph_index.rs ├── hnsw.rs ├── hnsw_utils │ └── mod.rs └── mod.rs ├── lib.rs ├── pylib └── mod.rs ├── quantizers.rs ├── quantizers ├── decoder.rs ├── encoder.rs ├── plain_quantizer.rs ├── pq.rs ├── quantizer.rs └── sparse_plain_quantizer.rs ├── topk_selectors.rs ├── topk_selectors └── topk_heap.rs ├── utils └── mod.rs └── visited_set ├── mod.rs └── set.rs /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/.gitignore -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/README.md -------------------------------------------------------------------------------- /docs/Binaries.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/docs/Binaries.md -------------------------------------------------------------------------------- /docs/PythonUsage.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/docs/PythonUsage.md -------------------------------------------------------------------------------- /docs/RunExperiments.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/docs/RunExperiments.md -------------------------------------------------------------------------------- /docs/RustUsage.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/docs/RustUsage.md -------------------------------------------------------------------------------- /experiments/ecir2025/dense_ms_marco_dragon.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/experiments/ecir2025/dense_ms_marco_dragon.toml -------------------------------------------------------------------------------- /experiments/ecir2025/dense_ms_marco_star.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/experiments/ecir2025/dense_ms_marco_star.toml -------------------------------------------------------------------------------- /experiments/ecir2025/dense_sift1m.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/experiments/ecir2025/dense_sift1m.toml -------------------------------------------------------------------------------- /experiments/ecir2025/pq_ms_marco_dragon.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/experiments/ecir2025/pq_ms_marco_dragon.toml -------------------------------------------------------------------------------- /experiments/ecir2025/sparse_ms_marco_splade.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/experiments/ecir2025/sparse_ms_marco_splade.toml -------------------------------------------------------------------------------- /imgs/kannolo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/imgs/kannolo.png -------------------------------------------------------------------------------- /imgs/kannolo_with_text.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/imgs/kannolo_with_text.jpeg -------------------------------------------------------------------------------- /notebooks/build_and_search_on_large_dataset.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/notebooks/build_and_search_on_large_dataset.ipynb -------------------------------------------------------------------------------- /notebooks/kannolo_demo_dense_plain.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/notebooks/kannolo_demo_dense_plain.ipynb -------------------------------------------------------------------------------- /notebooks/kannolo_demo_sparse.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/notebooks/kannolo_demo_sparse.ipynb -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/pyproject.toml -------------------------------------------------------------------------------- /rust-toolchain.toml: -------------------------------------------------------------------------------- 1 | [toolchain] 2 | channel = "nightly" 3 | -------------------------------------------------------------------------------- /scripts/compare_reports.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/scripts/compare_reports.py -------------------------------------------------------------------------------- /scripts/convert_bin_to_npy_arrays.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/scripts/convert_bin_to_npy_arrays.py -------------------------------------------------------------------------------- /scripts/convert_npy_arrays_to_bin.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/scripts/convert_npy_arrays_to_bin.py -------------------------------------------------------------------------------- /scripts/requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/scripts/requirements.txt -------------------------------------------------------------------------------- /scripts/run_experiments.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/scripts/run_experiments.py -------------------------------------------------------------------------------- /src/bin/compute_groundtruth.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/bin/compute_groundtruth.rs -------------------------------------------------------------------------------- /src/bin/hnsw_build.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/bin/hnsw_build.rs -------------------------------------------------------------------------------- /src/bin/hnsw_search.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/bin/hnsw_search.rs -------------------------------------------------------------------------------- /src/clustering/kmeans/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/clustering/kmeans/mod.rs -------------------------------------------------------------------------------- /src/datasets/dataset.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/datasets/dataset.rs -------------------------------------------------------------------------------- /src/datasets/dense_dataset.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/datasets/dense_dataset.rs -------------------------------------------------------------------------------- /src/datasets/sparse_dataset.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/datasets/sparse_dataset.rs -------------------------------------------------------------------------------- /src/datasets/utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/datasets/utils.rs -------------------------------------------------------------------------------- /src/distances.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/distances.rs -------------------------------------------------------------------------------- /src/distances/dot_product.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/distances/dot_product.rs -------------------------------------------------------------------------------- /src/distances/euclidean_distance.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/distances/euclidean_distance.rs -------------------------------------------------------------------------------- /src/distances/simd/distances.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/distances/simd/distances.rs -------------------------------------------------------------------------------- /src/distances/simd/transpose.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/distances/simd/transpose.rs -------------------------------------------------------------------------------- /src/distances/simd/utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/distances/simd/utils.rs -------------------------------------------------------------------------------- /src/graph.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/graph.rs -------------------------------------------------------------------------------- /src/index_serializer/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/index_serializer/mod.rs -------------------------------------------------------------------------------- /src/indexes/graph_index.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/indexes/graph_index.rs -------------------------------------------------------------------------------- /src/indexes/hnsw.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/indexes/hnsw.rs -------------------------------------------------------------------------------- /src/indexes/hnsw_utils/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/indexes/hnsw_utils/mod.rs -------------------------------------------------------------------------------- /src/indexes/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/indexes/mod.rs -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/pylib/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/pylib/mod.rs -------------------------------------------------------------------------------- /src/quantizers.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/quantizers.rs -------------------------------------------------------------------------------- /src/quantizers/decoder.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/quantizers/decoder.rs -------------------------------------------------------------------------------- /src/quantizers/encoder.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/quantizers/encoder.rs -------------------------------------------------------------------------------- /src/quantizers/plain_quantizer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/quantizers/plain_quantizer.rs -------------------------------------------------------------------------------- /src/quantizers/pq.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/quantizers/pq.rs -------------------------------------------------------------------------------- /src/quantizers/quantizer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/quantizers/quantizer.rs -------------------------------------------------------------------------------- /src/quantizers/sparse_plain_quantizer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/quantizers/sparse_plain_quantizer.rs -------------------------------------------------------------------------------- /src/topk_selectors.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/topk_selectors.rs -------------------------------------------------------------------------------- /src/topk_selectors/topk_heap.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/topk_selectors/topk_heap.rs -------------------------------------------------------------------------------- /src/utils/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/utils/mod.rs -------------------------------------------------------------------------------- /src/visited_set/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod set; 2 | -------------------------------------------------------------------------------- /src/visited_set/set.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TusKANNy/kannolo/HEAD/src/visited_set/set.rs --------------------------------------------------------------------------------