Infino is a high-performance, embedded retrieval engine designed to run SQL, full-text search (BM25), and vector search over a single copy of data stored on object storage README.md9-10 It is built as a Rust library with first-party bindings for Python and Node.js README.md30-51
Infino follows an object-storage-native philosophy: data and indexes reside in standard Parquet-compatible files on S3, Azure Blob, GCS, or local disk, enabling snapshot-isolated reads and atomic commits without requiring a dedicated server or daemon README.md15
The engine is built on four core pillars:
superfile format—a valid Apache Parquet file with search indexes embedded alongside columnar data—preventing vendor lock-in README.md16 llms.txt63-64For a detailed breakdown of the fundamental concepts and performance trade-offs, see Core Concepts & Terminology.
Infino's architecture is divided into two primary layers: the Superfile (the on-disk format) and the Supertable (the table management and query layer).
The following diagram maps high-level system concepts to their specific implementations in the codebase.
Concept to Code Entity Mapping
Sources: src/lib.rs131-152 Cargo.toml154-166 infino-python/pyproject.toml1-3 llms.txt68-71
The Supertable coordinates multiple superfile instances. It uses a Manifest to track which files belong to a specific snapshot and manages mutations through append, update, and delete operations.
Subsystem Interaction Diagram
Sources: src/lib.rs102-120 src/supertable/gc/mod.rs24-35 docs/architecture/supertable.md3-25 AGENTS.md7-9
The fundamental unit of storage. It is a valid Parquet file where FTS and Vector index regions are spliced into the layout. Standard Parquet readers (like DuckDB or DataFusion) can read the columns directly while skipping the index regions llms.txt63-64 AGENTS.md7-9
For details, see Superfile Format.
A multi-file abstraction that provides a consistent view of a table.
Manifest even while writes are in progress. Writes are append-only and become visible only upon an atomic commit docs/architecture/supertable.md16-21query_sql. Search functions are exposed as SQL table-valued functions, allowing search to be joined and filtered via SQL docs/architecture/supertable.md94-100For details, see Supertable Layer.
Infino uses a URI-based connection string to determine the storage backend crate-docs.md109-113
memory://: In-process ephemeral storage.s3://: Amazon S3.az://: Azure Blob Storage.gs://: Google Cloud Storage.file:// or path: Local filesystem.For details, see Catalog & Connection API.
Sources: README.md9-17 Cargo.toml93-166 src/lib.rs1-152 docs/architecture/supertable.md1-140 AGENTS.md1-58