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

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

infino-0.5.3-cp39-abi3-musllinux_1_2_aarch64.whl (60.6 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

infino-0.5.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (61.0 MB view details)

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

infino-0.5.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (60.5 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

infino-0.5.3-cp39-abi3-macosx_11_0_arm64.whl (54.6 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

infino-0.5.3-cp39-abi3-macosx_10_12_x86_64.whl (57.5 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

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

File metadata

File hashes

Hashes for infino-0.5.3-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a3a444dd77f4b631bfd6b368acb5c52c08b6da407960cf42d3167b27eceabdf4
MD5 9c903d056e65385dbc071d4ffc31685d
BLAKE2b-256 016191cc7526bfaab2372c21da8edaedcbec90f162febf51f69af049557900a2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.5.3-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8894001adb4989cdf4234182199e240ea229ed1ace8d83fdb8f4776c69c22582
MD5 2d8691a0247f47c1fbea26657dfe81ca
BLAKE2b-256 a01fca0ba23d2b4d609b46a4f01b13e6ce1e2e42f23756a62359b995f66af5a3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.5.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 17299a108f38d6593646df6418d14e7b30aa25ff161b1b63964dcd336a890b30
MD5 97db4d4ce18934e0b31c27dc8e18a16b
BLAKE2b-256 40d10c01490026f475dd88ceac937e0bd00dbf83c79763240c38dbe1c904cb25

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.5.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 30c8dec523149e919357e9ab295fb6c7291141afde620decb81b29164065aef1
MD5 b9369d064f729cfd9e2265a06a85a6ef
BLAKE2b-256 01a9a5ae0522f17f1dc57a4b6d3019b5ba078c343e46d4cb6b69e9c267bbc5db

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.5.3-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6d6a2ed1fee435d3b733b9560f0ac13dfcb6d09b68b3bddf4dae46d205bdac2b
MD5 42ff690e4b177d009d31f2c6b58ede67
BLAKE2b-256 cb1bf98f5e4e9ceaefb53c768fb8f521b1835250d57965f20e26afd6a795f803

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.5.3-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c40520ec435847a0ad04f1d564f46c1c7bf4ae9718a154b76b19fee54f19b46b
MD5 0a8bf16a5c253519b83279267d1c5b5d
BLAKE2b-256 c4867833ad2d1522bd6d6f20f0558ec11278a1457336542613837a974379daa0

See more details on using hashes here.

Provenance

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

This release

0.5.3 This release

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

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