Skip to main content

Infino

PyPI Python Downloads License

SQL, full-text, and vector search over your data on object storage — one engine, no server to run.

Infino keeps your data in Apache Parquet on object storage (local disk, Amazon S3, or any S3-compatible store) and runs SQL, full-text (BM25), and vector search over it from a single system. Each file is a valid Parquet file with BM25 and vector indexes embedded directly inside it; a table composes many such files with snapshot-isolated reads, append-only writes, and atomic commits. It runs in your process — there is no daemon, no cluster, and no managed service to operate.

Use it for RAG, agent memory, hybrid search, and semantic search: an embedded vector database, full-text (BM25) search engine, and SQL query engine in one library.

Installation

pip install infino

Or with uv:

uv add infino            # add to a uv-managed project
uv pip install infino    # install into the active environment

Requires Python 3.9 or newer. pyarrow is installed as a dependency; pandas is optional and used only if you pass DataFrames.

Quickstart

import infino
import pyarrow as pa

# Connect to a catalog. Use a local path or an S3 URI for durable storage;
# "memory://" is ephemeral and handy for tests.
db = infino.connect("./data")

# 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.
def embed(topic):
    v = [0.0] * 16
    v[topic] = 1.0
    return v

# Declare a schema and which columns to index. An "_id" column is added
# automatically — you don't define it. A vector column's dim must be in
# [16, 4096]; here we use 16, the floor.
schema = pa.schema([
    pa.field("source", pa.large_utf8(), nullable=False),
    pa.field("body", pa.large_utf8(), nullable=False),
    pa.field("embedding", pa.list_(pa.float32(), 16), nullable=False),
])
docs = db.create_table(
    "docs", schema, infino.IndexSpec().fts("body").vector("embedding", 16, "cosine")
)

# Append rows. One append is one atomic commit.
docs.append([
    {"source": "help-center", "body": "To cancel a subscription, open Settings then Billing.", "embedding": embed(0)},
    {"source": "help-center", "body": "Refunds return to the original payment method.",         "embedding": embed(0)},
    {"source": "blog",        "body": "Enable dark mode under Settings then Appearance.",        "embedding": embed(1)},
])

# Retrieve context to ground an agent's next answer — keyword, vector,
# hybrid (BM25 + vector fused in one pass), or SQL. Each returns a pyarrow.Table.
keyword  = docs.bm25_search("body", "cancel subscription", k=5)                           # BM25
semantic = docs.vector_search("embedding", embed(0), k=5)                                 # vector kNN
hybrid   = docs.hybrid_search("body", "cancel subscription", "embedding", embed(0), k=5)  # fused
billing  = db.query_sql("SELECT body FROM docs WHERE source = 'help-center'")             # SQL filter

Documentation

Full docs, guides, and the API reference live at infino.ai/docs:

Building from source

The bindings are built with maturin and require a Rust toolchain.

python3 -m venv .venv && source .venv/bin/activate
pip install maturin pytest pyarrow
maturin develop          # compile the extension and install it into the venv
pytest tests/

License

Apache-2.0.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

infino-0.5.4-cp39-abi3-musllinux_1_2_x86_64.whl (61.5 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ x86-64

infino-0.5.4-cp39-abi3-musllinux_1_2_aarch64.whl (60.6 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

infino-0.5.4-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (61.0 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

infino-0.5.4-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (60.5 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

infino-0.5.4-cp39-abi3-macosx_11_0_arm64.whl (54.6 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

infino-0.5.4-cp39-abi3-macosx_10_12_x86_64.whl (57.5 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

Details for the file infino-0.5.4-cp39-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for infino-0.5.4-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2b28973b2bde462135e9b3f88a392457c40d0499854d337a6bcc5deec1def7ab
MD5 7f9f51e622e56a95120aebd434a0e8ae
BLAKE2b-256 c31abe8fc11cf34ed35b15b2369e3ee2c1760a7a2b303f63f50c51d07c666be0

See more details on using hashes here.

Provenance

The following attestation bundles were made for infino-0.5.4-cp39-abi3-musllinux_1_2_x86_64.whl:

Publisher: publish-python.yml on infino-ai/infino

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file infino-0.5.4-cp39-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for infino-0.5.4-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 01880276085418e23185b4cd24b64df2bddc6b484abf257381cf1b89593c418a
MD5 40d342156fa8ad92cee63e020086504c
BLAKE2b-256 37e9f1022c7f87d65e099c02f52386057fc964d3286149daf6f7ddb80b4c74f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for infino-0.5.4-cp39-abi3-musllinux_1_2_aarch64.whl:

Publisher: publish-python.yml on infino-ai/infino

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file infino-0.5.4-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for infino-0.5.4-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 731e7cc76485c1ee2caaa6a23d5504284545e91f0a198668bdbeb38e41caa49a
MD5 fa35ba3bfb01f307b47bf292b1f2cdd7
BLAKE2b-256 92ea187ae768cc41de9230f93315a672cdf58610182877be9987e665a19e5806

See more details on using hashes here.

Provenance

The following attestation bundles were made for infino-0.5.4-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-python.yml on infino-ai/infino

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file infino-0.5.4-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for infino-0.5.4-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3f9167a63f12e08323739f9f0694a31ebd6d10e8a23941da4efb31dc8873a9a1
MD5 09852aaa6937827f407bad0377e395d7
BLAKE2b-256 827b687bb9e74838783f9cc48a18b6056c9339af050f76ba8672fffe171f560e

See more details on using hashes here.

Provenance

The following attestation bundles were made for infino-0.5.4-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-python.yml on infino-ai/infino

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file infino-0.5.4-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for infino-0.5.4-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 df24b2025dde0a8e62c715ece3197b40de4b9a8cc16c0a4488db25ccf109cd26
MD5 021c43dc498850a4c457a07037dd9dc9
BLAKE2b-256 61a00ad815c63af1bf94b34899510477c3bfa8856a7710d0aa5217f2779ccd82

See more details on using hashes here.

Provenance

The following attestation bundles were made for infino-0.5.4-cp39-abi3-macosx_11_0_arm64.whl:

Publisher: publish-python.yml on infino-ai/infino

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file infino-0.5.4-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for infino-0.5.4-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 62472197e88a0776e3b40a61132192f6899b79d1a43d982927596a4427aebab5
MD5 0af41068301b94df45aa9e4f315215ee
BLAKE2b-256 dfce234d3eb534813567432ed99edce1c48a81dbdd89b35c160dd7773327daa8

See more details on using hashes here.

Provenance

The following attestation bundles were made for infino-0.5.4-cp39-abi3-macosx_10_12_x86_64.whl:

Publisher: publish-python.yml on infino-ai/infino

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.5.4 This release

6 files

0.5.3

6 files

0.5.2

6 files

0.5.1

6 files

0.5.0

6 files

0.4.1

6 files

0.4.0

6 files

0.3.1

6 files

0.3.0

6 files

0.2.1

6 files

0.2.0

6 files

0.1.10

6 files

0.1.9

6 files

0.1.8

6 files

0.1.7

6 files

0.1.6

6 files

0.1.5

6 files

0.1.4

6 files

0.1.3

6 files

0.1.2

6 files

0.1.1

6 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page