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

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

infino-0.4.1-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.4.1-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.4.1-cp39-abi3-macosx_11_0_arm64.whl (53.9 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

infino-0.4.1-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.4.1-cp39-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for infino-0.4.1-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 072d451c75ac89fc9a940815a2385a6646aed3df62677b95edc094ecbf9bc9a4
MD5 ea9af23e86a02d5b9ab5b6c04d89fb03
BLAKE2b-256 bb7be0a604c777dcf043a02dbc222ffe83c70f82868c031f137b12cfdfe16108

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.4.1-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b65938ca1984c4c157d353a220829d71e24403bf0fdb08ce298e5a334be62300
MD5 3dba151780944007b5255a4da821f3e3
BLAKE2b-256 9b625ea0e127cb6b6f282bf9ecfd5d00fb41bb93573e7e100461b922a3b54185

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.4.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ef5a5e8f1a03595e742a06e03bc956cc125e46825af361187ffcfb31fcc67099
MD5 d478d66f3fb57916cd4ae69c23ac2d60
BLAKE2b-256 9b38154618365f4866d4c93daff13ca2dca39b5a6c9ba2294dc515227c53ca38

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.4.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f7c55a1f67a97686128b3d878303425faec0192c718e0068fe5ab6aba32b80a6
MD5 be4920e1342ad4cf0989b4add53765e1
BLAKE2b-256 dadf38f4f4ccebaff94947f3be3ee84c2b214c54ab290539051767a9630a02cd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.4.1-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d0f31bcc1c538c026e211bd8f779c5530de562815285e76f5d9d2cc40f3e452e
MD5 f66812d698b96868afd77f1a67c0b500
BLAKE2b-256 888146ea93caedcedf7f3d6d8401af6218ee4ed8e2c74134adc486fb0624fbbf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.4.1-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1eda39b4ccb4bf960bd1be1a6ac0f9a6b5a0bf4524748bf1792a4aee321b5b39
MD5 8c70d6fe6284d91666c0a8517aa1688f
BLAKE2b-256 8163c78b240cf98afe7f4d324304b129925e22637005639bf75c91ddbe0428be

See more details on using hashes here.

Provenance

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

This release

0.4.1 This release

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