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.2-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.2-cp39-abi3-musllinux_1_2_aarch64.whl (60.0 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

infino-0.5.2-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.2-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.2-cp39-abi3-macosx_11_0_arm64.whl (54.0 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

infino-0.5.2-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.2-cp39-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for infino-0.5.2-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b2e7e27303cb567b8995db614f88e2bbf16ee22b5c0cdfda8e072982aae38706
MD5 0a33ea44f46cd35c439b368abd2023ec
BLAKE2b-256 6c5da2b2f83b81eff1dbb36b4c0156fc3f6598a0f13ca16606af21645217f98d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.5.2-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9757e2f09ed51e2cf22e82c6e5b693b7818f8240c313a12b60aa65b3c54d5408
MD5 fc143bcb343cafeb47e16493f033e4b4
BLAKE2b-256 5cf4c7d3baa153dd08c66940c1350a8f0c7aa7d8aa747174924e72bdfaad272d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.5.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dfa7db6236827715cacceec5eacba42462cb48db485b657661adbcc74a93c54b
MD5 cd66ec81bed49911c35198baa5dd5bab
BLAKE2b-256 cf678d3f120fdfef3a98c7d288ba11ee7649d62f415ad79e1e0075d7673dadc2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.5.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 913624d3a33f04b8621ddde0fe1cf4475ff9b9b2ce9fa8c430684e60ddce9a11
MD5 dcc1c3e0fdf2701fda00b21517868b62
BLAKE2b-256 5668be238902482969564f8b043d8a1608b35b0b8843b65e894f4550155a15f4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.5.2-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4cf70a7fcfa824902d869a640202067d7b1d575fd3c00695d336abecb81f0db0
MD5 e5c0b2df80c9b6ffcaffcb67cd613fd2
BLAKE2b-256 e46380f1cf595b2aabb743d8f65bdda959d732c97e15fd92b7d3e07cc3924a89

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.5.2-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6c2b5a160e6da61c5203477abf2f880f3f80a1e883dbe085f52f6a8d091dc5a0
MD5 cd37a67e2a9520ab09680fde484bf1c4
BLAKE2b-256 f4a4031949c47a8f321a0ff5a9835f1edd2e22ca39c8ae532f612e8fe176001b

See more details on using hashes here.

Provenance

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

This release

0.5.2 This release

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