--- warning: DO NOT CHANGE THIS MANUALLY, THIS IS GENERATED BY https://github.com/duckdb/community-extensions repository, check README there title: turbovec excerpt: | DuckDB Community Extensions Compressed vector search for DuckDB — Google TurboQuant quantization, IVF indexing, incremental CRUD, cosine/L2/dot extension: name: turbovec description: "Compressed vector search for DuckDB — Google TurboQuant quantization, IVF indexing, incremental CRUD, cosine/L2/dot" version: 0.3.0 language: Rust build: cargo license: MIT requires_toolchains: rust maintainers: - alitrack excluded_platforms: "linux_arm64;wasm_mvp;wasm_eh;wasm_threads" repo: github: alitrack/duckdb_turbovec ref: 5d5448d0ae1759c4d56317cd1e44f4eb63f0c252 ref_next: 5d5448d0ae1759c4d56317cd1e44f4eb63f0c252 docs: hello_world: | LOAD turbovec; -- Build a compressed vector index (8-dim vectors, 3 sub-vectors) SELECT * FROM turboquant_build_list( [0.0::FLOAT,1.0,2.0,3.0,4.0,5.0,6.0,7.0], 3, 'my_index' ); -- Add a vector SELECT * FROM turboquant_add( [8.0::FLOAT,9.0,10.0,11.0,12.0,13.0,14.0,15.0], 'my_index' ); -- Search nearest neighbors SELECT * FROM turboquant_search('my_index', 'l2', 3); -- Build concatenated indexes SELECT * FROM turboquant_build_concat('my_index', 'my_index', 'union'); -- Build IVF index for faster search SELECT * FROM turboquant_build_ivf('my_index', 10, 'ivf_index', 'l2'); SELECT * FROM turboquant_search_ivf('ivf_index', 'l2', [0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5]::FLOAT[], 3); extended_description: | ## turbovec — Compressed Vector Search for DuckDB High-performance approximate nearest neighbor (ANN) search using Google's TurboQuant for product quantization and IVF indexing. **9 Functions:** | Function | Description | |----------|-------------| | `turboquant_build_list(FLOAT[], INT, VARCHAR)` | Build index from vector list | | `turboquant_build(FLOAT[], FLOAT[], FLOAT[], INT, VARCHAR)` | Build from separate batches | | `turboquant_add(FLOAT[], VARCHAR)` | Add single vector | | `turboquant_remove(INT, VARCHAR)` | Remove vector | | `turboquant_search(VARCHAR, VARCHAR, INT)` | Search (l2/cosine/dot) | | `turboquant_score(FLOAT[], VARCHAR)` | Score a query vector | | `turboquant_build_concat(VARCHAR, VARCHAR, VARCHAR)` | Merge indexes | | `turboquant_build_ivf(VARCHAR, INT, VARCHAR, VARCHAR)` | Build IVF index | | `turboquant_search_ivf(VARCHAR, VARCHAR, FLOAT[], INT)` | IVF search | **Features:** - **Vector compression** via TurboQuant (product quantization) - **IVF index** with configurable nlist - **Multiple metrics:** l2, cosine, dot - **Incremental** add/remove without full rebuild - **Index concatenation** for merging datasets **Performance:** - 10-100× compression vs raw vectors - Sub-millisecond search on million-scale datasets **Platforms:** Linux x64, macOS arm64/x64. Windows and WASM excluded (OpenBLAS dependency). Built on Google's [TurboQuant](https://github.com/google/turbovec) library. extension_star_count: 8 extension_star_count_pretty: 8 extension_download_count: 829 extension_download_count_pretty: 829 image: '/images/community_extensions/social_preview/preview_community_extension_turbovec.png' layout: community_extension_doc --- ### Compatibility Matrix This table covers all DuckDB releases that have not reached [end-of-life](https://duckdb.org/release_calendar), including LTS releases, and shows the 2 most recent patch releases of each. Older patch releases are not listed, but the extension may be available for them as well.
| Platform | 1.4.4 | 1.4.5 | 1.5.5 | 1.5.6 | 2.0.0 | | :--- | :---: | :---: | :---: | :---: | :---: | | Linux AMD64 | ❌ | ❌ | ✅ | ✅ | ✅ | | Linux ARM64 | ❌ | ❌ | ❌ | ❌ | ❌ | | macOS AMD64 | ❌ | ❌ | ✅ | ✅ | ✅ | | macOS ARM64 | ❌ | ❌ | ✅ | ✅ | ✅ | | Windows AMD64 | ❌ | ❌ | ✅ | ✅ | ✅ | | Windows ARM64 | ❌ | ❌ | ❌ | ❌ | ❌ | | WebAssembly | ❌ | ❌ | ❌ | ❌ | ❌ | ### Installing and Loading ```sql INSTALL {{ page.extension.name }} FROM community; LOAD {{ page.extension.name }}; ``` {% if page.docs.hello_world %} ### Example ```sql {{ page.docs.hello_world }}``` {% endif %} {% if page.docs.extended_description %} ### About {{ page.extension.name }} {{ page.docs.extended_description }} {% endif %} ### Added Functions | function_name | function_type | description | comment | examples | |-------------------------|---------------|-------------|---------|----------| | turboquant_add | table | NULL | NULL | | | turboquant_build | table | NULL | NULL | | | turboquant_build_concat | table | NULL | NULL | | | turboquant_build_ivf | table | NULL | NULL | | | turboquant_build_list | table | NULL | NULL | | | turboquant_remove | table | NULL | NULL | | | turboquant_score | table | NULL | NULL | | | turboquant_search | table | NULL | NULL | | | turboquant_search_ivf | table | NULL | NULL | | ### Overloaded Functions This extension does not add any function overloads. ### Added Types This extension does not add any types. ### Added Settings | name | description | input_type | scope | aliases | typed_value | |----------------|---------------------------------------------------------|------------|--------|---------|-------------| | temp_directory | Set the directory to which temporary files are written. | VARCHAR | GLOBAL | [] | post.db.tmp |