Documentation
Build and read
the format.
Infino is one Apache Parquet file with a BM25 inverted index and a vector index embedded alongside the data. Build it with the Infino Builder, read it with the Infino Reader — or with any Parquet engine that already reads your data.
Quickstart · read an Infino file
use infino::{
Reader, VectorSearchOptions, bm25_search, vector_search,
};
use infino::fts::reader::BoolMode;
use bytes::Bytes;
// One file: a valid Parquet file plus embedded BM25 + vector indexes.
let bytes: Bytes = std::fs::read("my.parquet")?.into();
let reader = Reader::open(bytes)?;
// BM25 search over the embedded inverted index:
let hits = bm25_search(&reader, "title", "rust async", 10, BoolMode::Or)?;
// ANN search over the embedded vector index:
let hits = vector_search(&reader, "embedding", &query, 10,
VectorSearchOptions::default())?;
// And the same bytes register as a normal Parquet table
// in DataFusion / DuckDB / pyarrow.Reference
01
Format spec
Top-level byte layout, footer KV metadata, inverted-index region, vector-index region.
02
Build path
Builder API, ingest options, FTS / vector configs, commit() durability and the threshold-flush model.
03
Read path
Reader, OpenOptions, BM25 search, multi-column weighted search, ANN, and the Parquet sub-slice for DataFusion.
04
Query layer
Cross-segment query layer: ArcSwap reader-writer isolation, copy-on-write manifest, dual-pool concurrency, DataFusion SQL.
