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, GCS, 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, GCS, 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.
#
Operations
The public surface is a small connection-and-table API. Everything except the
two entry-point functions is a method on one of two handles, so the operations
live on the [Connection] and [Supertable] pages:
- [
connect] / [connect_with] open a [Connection]. The backend follows the URI scheme (s3://,az://,gs://,file://, bare path,memory://); credentials are passed via [ConnectOptions::with_storage_option] (object_store'saws_*/azure_*/google_*keys), never read from the environment. - [
Connection] — the catalog:create_table,open_table,drop_table,list_tables, andquery_sql. - [
Supertable] — a single table:- Search —
bm25_search,vector_search,hybrid_search,token_match,exact_match, andcount. Each search returns Arrow rows asVec<RecordBatch>. - Write —
append,update,delete. - Maintain —
optimize,gc, andschema.
- Search —
Supporting types: [IndexSpec], [Metric], [BoolMode],
[VectorSearchOptions], [VectorFilter], [ConnectOptions], [MutationStats],
[GcReport], and the [InfinoError], [OptimizeError], and [GcError] error
enums.
Cargo features
default— enables the bundled mimalloc global allocator. Disable withdefault-features = falseif your process already installs a global allocator.
Other languages
infino also ships Python (pip install infino) and Node.js
(npm install @infino-ai/infino) bindings. For concepts, guides, and
multi-language examples, see the full documentation at
infino.ai/docs.