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

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

infino-0.3.0-cp39-abi3-musllinux_1_2_aarch64.whl (59.4 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

infino-0.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (59.9 MB view details)

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

infino-0.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (59.3 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

infino-0.3.0-cp39-abi3-macosx_11_0_arm64.whl (53.4 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

infino-0.3.0-cp39-abi3-macosx_10_12_x86_64.whl (56.4 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

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

File metadata

File hashes

Hashes for infino-0.3.0-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 91f253f269255b13d10858eb508055ccc6aa82411584d26e4465e857d2caa368
MD5 41d303702bcb77cfb6dd5fa27ecae057
BLAKE2b-256 abd47c5f47e86fdcbacee71db8a07ecb86483a4f495f1a0ddfc26d913a5ae138

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.3.0-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 579c1df356c965b424ab4bf5f9a8cfbcc1deeb3a201b01f0b2d64de2d5b5e18d
MD5 9e3963abd57c73f24e34c0857f4e98bf
BLAKE2b-256 98e5c08bade16bb765a44702179475e8e91abb528754c953dfc5d9ecb8b9904a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3bfc307adaade872213585f182fc77f11c5c5377b42978e2e59ffd16bdce4ed5
MD5 8dd468de4971e13ec7b6c198529374c1
BLAKE2b-256 c541e966b99d44c0e26b9359266d8ca3c8c39e2359db826a85e941d559afbd59

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5ee7d59bc624b91218ac4792f1ae766a6ac22ec0ed02cbb6af063b9ee4d3de06
MD5 3f8f00f2166cf1994cda7be049f3eb76
BLAKE2b-256 7b6495ab8b0c20b79c111127fdc5531e21fa1fb4468e8a773770af3c53f8337b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.3.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8f2d5b636c893d09362bace45ac31ed91ebd1913e4bd274a9fb87c9e62e61bf1
MD5 c57a9a3ec6baffdd2d2f75f403601f37
BLAKE2b-256 8f116ef6d2f79b2c5d0500daa06726f481a4695793a7f84f5227cf4ec4746ca7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.3.0-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 17fa4b7e4ae35a4653e769679547e8df50ea416c97f76c2fc53a1e26471ea564
MD5 9ef3a1a647cc8a1e96a9cb84ce813df9
BLAKE2b-256 38a7a741aff53d64a78ae2548693aa30b7ff19ae29f33c22c049f0fd78bd2f56

See more details on using hashes here.

Provenance

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

0.5.0

6 files

0.4.1

6 files

0.4.0

6 files

0.3.1

6 files

This release

0.3.0 This release

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