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

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

infino-0.1.9-cp39-abi3-musllinux_1_2_aarch64.whl (59.2 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

infino-0.1.9-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (59.6 MB view details)

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

infino-0.1.9-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (59.0 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

infino-0.1.9-cp39-abi3-macosx_11_0_arm64.whl (53.2 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

infino-0.1.9-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.1.9-cp39-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for infino-0.1.9-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e3f01d07e52708683e773c20f6c7b06578fd7028749cd6b090bf7c07473b709c
MD5 aeed11c8e285c4b85ce8d5f1a13b840d
BLAKE2b-256 60e756cf024cfdc8a11c373bc8755941beaa9cb71849fc22342d3f13a5cb0705

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.9-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5375313ad149d1392c97e3de96464171de6eba022823d7caf7e9550ba5f6483f
MD5 31f197827ca9bf650f8edd03d67d0f46
BLAKE2b-256 831582e9254a52d6526ec7b90e12532a93528d3547d018cce2f3b786322e3086

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.9-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 03edffd856c98052f201b1d9316de1b6125358d258fb8d58c26b3f1bf140bb37
MD5 93b57d2cba65c90345b73b1e716f075f
BLAKE2b-256 561a8a21d9cfc2107c5e354e6b44580556d52c235d7e5df44cc0475ea0a7ec82

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.9-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fa6cdb7b3e47adbda41cd83547038b4f96e67b4c2c4da661641f30a18a854ea0
MD5 425195500fa5081d8f7879a7f9582bb2
BLAKE2b-256 6a6dd1fdb29bc2968bde725c2b2b7d1463aa19c2de7b06e2c7e93f5d44974ebf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.9-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cc60715a26ec0beff01b548124933acb5fdaa14cbd745e960f476b0f1b7f46f9
MD5 82fa0d4884c70d03bbf4323aa13a6901
BLAKE2b-256 fd6909de8e99d567736a99d944d67463a893f1cf9ee9354180788fd4780fc3a2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.9-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 390ddb2ab70af50d0426196bb3a05e43c46ec7d0c6d78835ad2977da8f7faadc
MD5 e4634784c5ae6ec7e609cfac4be78c2e
BLAKE2b-256 9cd0c1bf1f0d77b4416db8a2a4a8da3450fd652bc71ab816ec8b0922f770e8ad

See more details on using hashes here.

Provenance

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

0.2.0

6 files

0.1.10

6 files

This release

0.1.9 This release

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