infino
infino is a fast retrieval engine that runs SQL, full-text (BM25), and vector search over a single copy of your data on object storage. Data stays in Parquet on S3 (or Azure, or local disk) and you query it at scale — embedded in your process, with no separate search server or vector database to run.
- Speed per dollar — object-storage economics at search-engine speeds; on a 1-million-document index, warm BM25 queries return in the microsecond range.
- Multi-modal queries — keyword (BM25), vector, and SQL over the same rows.
- Object-storage-native — snapshot-isolated reads and atomic commits over S3, Azure, or local disk.
- Open format, no lock-in — spec-compliant Parquet, so anything that reads Parquet can read your data.
Install
infino installs the mimalloc global
allocator by default. If you embed infino in a process that already sets a global
allocator, turn it off to avoid a second one:
infino = { version = "0.1", default-features = false }.
Quickstart
use Arc;
use ;
use ;
use ;
// Tiny stand-in for your embedding model so this runs as-is — a 16-dim
// one-hot by topic. Real embeddings are dense and higher-dimensional.
#
API overview
The public surface is a small connection-and-table API:
connect/connect_withopen aConnection. The backend follows the URI scheme (s3://,az://,file://, bare path,memory://); credentials are passed viaConnectOptions::with_storage_option(object_store'saws_*/azure_*keys), never read from the environment.Connection—create_table,open_table,drop_table,list_tables,query_sql.Supertable(the table handle) —append,update,delete,schema, and the search methodsbm25_search,vector_search,hybrid_search,token_match, andexact_match(each returns Arrow rows asVec<RecordBatch>).- Supporting types —
IndexSpec,Metric,BoolMode,VectorSearchOptions,ConnectOptions,MutationStats, and theInfinoErrorenum.
Other languages
infino also ships Python (pip install infino) and Node.js
(npm install @infino-ai/infino) bindings. For multi-language guides and
examples, see the project repository.