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.0-cp39-abi3-musllinux_1_2_x86_64.whl (61.0 MB view details)

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

infino-0.5.0-cp39-abi3-musllinux_1_2_aarch64.whl (60.0 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

infino-0.5.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (60.4 MB view details)

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

infino-0.5.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (59.8 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

infino-0.5.0-cp39-abi3-macosx_11_0_arm64.whl (53.9 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

infino-0.5.0-cp39-abi3-macosx_10_12_x86_64.whl (56.9 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

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

File metadata

File hashes

Hashes for infino-0.5.0-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 47e9b54f95e84e17b9efea4a005853367eab5b84ecd556829a3204ea842d4b53
MD5 e1dc854c2c789db94fced93e979e2669
BLAKE2b-256 24cbecec36500711fda959dab99315ddceff84003f75ba254e890171f09eb115

See more details on using hashes here.

Provenance

The following attestation bundles were made for infino-0.5.0-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.0-cp39-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for infino-0.5.0-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 aa70f65552012fdc45b73b578dbd07f5e913a3b07019d923b453fd63a74fdbf0
MD5 143a8fc6739cdf6f85a352f64b593ffe
BLAKE2b-256 7950fef8712ab2060f014652d7250a06fce9967801f0ab3f3380fe5cecea0509

See more details on using hashes here.

Provenance

The following attestation bundles were made for infino-0.5.0-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.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for infino-0.5.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0888567a43892a38ac52d2c20024ba0fbe2159d8ea70e2a67eddac24792bf5f7
MD5 814ec9ae890258e26410f9cf0ebf8507
BLAKE2b-256 dd7877ed655071858252bc84012e0c7f4bba3cd3319361b85032a0fac7ddcbba

See more details on using hashes here.

Provenance

The following attestation bundles were made for infino-0.5.0-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.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for infino-0.5.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 589708ab212c85973d561e401d291e6e861edd51cabf01a4880e4958e8007087
MD5 80dafa189cbf6e27c0591bc9d40032bc
BLAKE2b-256 305bbf3f531bade0806ec69dad0bed85ab7bb415c1dd518cf181e8ef27020d64

See more details on using hashes here.

Provenance

The following attestation bundles were made for infino-0.5.0-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.0-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for infino-0.5.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 754558dbe2fa62558a74ec18a9a12dc00a3b33e6e66aef6e99d718c43522ec3a
MD5 937b9f8980b2edc948dd65ecacce400e
BLAKE2b-256 d206ef7b555461a1edfe4484eaa15bd985dd55247cab698a0b7c86e74722023e

See more details on using hashes here.

Provenance

The following attestation bundles were made for infino-0.5.0-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.0-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for infino-0.5.0-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b8e3f803ef65bbb6dda05c4fa5ea80b33b885ea136cbcd02bc6e0b2ae032ebc0
MD5 0f8df33cb534dd510908821c84efba6b
BLAKE2b-256 f85de40e5e8c4e585c2375d43ff55c3d297d7b58a7c07fcf8161ffdf86a74a07

See more details on using hashes here.

Provenance

The following attestation bundles were made for infino-0.5.0-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

0.5.4

6 files

0.5.3

6 files

0.5.2

6 files

0.5.1

6 files

This release

0.5.0 This release

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