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, 1, "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.2.0-cp39-abi3-musllinux_1_2_x86_64.whl (60.3 MB view details)

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

infino-0.2.0-cp39-abi3-musllinux_1_2_aarch64.whl (59.3 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

infino-0.2.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (59.7 MB view details)

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

infino-0.2.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (59.1 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.9+macOS 11.0+ ARM64

infino-0.2.0-cp39-abi3-macosx_10_12_x86_64.whl (56.1 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

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

File metadata

File hashes

Hashes for infino-0.2.0-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3c20024d0ce90cd410f28ad55cb4739182f066252b6ff191ca7cf8debf055f97
MD5 5c8eec3a538bf19440fc067fdbf8d721
BLAKE2b-256 ac48038dbab75fa6b671780f9e334e62ed1e99e11d9d5304bf80e68e13ef9623

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.2.0-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 792bfe71675ca78ba2154b3c1af80b60832bf3318a7112656c7d63204f9218d6
MD5 ec871580dd489dabe7c387ecb741901f
BLAKE2b-256 520716297c6b8a35a5b9fa5cced49ec5fcf38d8192b4ca04745571c3591d80c7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.2.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b81b9106e531b9a217c6884e40da1658e4cc5c91c69104d42af6808571f6682c
MD5 3ed6e4b579a862065b542f090ebf1e14
BLAKE2b-256 ed2e5113326a51c7029fdfae0248ebfb5e308885530a2712096d6a8ec38df7d8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.2.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 be16741b681f1fc2929ae45436c6758eae1223448b3f0ca70f51ad0bffeca45a
MD5 1ae7572b005219faf571f9bc6241249f
BLAKE2b-256 9dc77714e3a445bf8b1c319e538a2c3109d25727bc942ee8576bc1b45b7acbfb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.2.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 69e0824f6e889bb37b2af0007c3d6355289f0cd87868f87d18c6623f2a9cb548
MD5 178bb05dd0e3f408d9c642bb1f262636
BLAKE2b-256 30fadb04fc0db9df6354195e8c72031ca9e55b4b8bed12fb79e6b808aa1f2928

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.2.0-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e8a58fd5aa642e1ff38a333855aa3b1f48ac255e9370d939c62f1d13e1adfe72
MD5 32147de81e8eb926085b216e12329717
BLAKE2b-256 422142076cdabd4b428d3c052a306a8463fb5c259852a9e010144fba513b58c3

See more details on using hashes here.

Provenance

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

0.3.0

6 files

0.2.1

6 files

This release

0.2.0 This release

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