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

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

infino-0.3.1-cp39-abi3-musllinux_1_2_aarch64.whl (59.8 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

infino-0.3.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (60.2 MB view details)

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

infino-0.3.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (59.6 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

infino-0.3.1-cp39-abi3-macosx_11_0_arm64.whl (53.9 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

infino-0.3.1-cp39-abi3-macosx_10_12_x86_64.whl (56.8 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

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

File metadata

File hashes

Hashes for infino-0.3.1-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6a3c6f53b66421690bf6b600178e1550ab7a50494f95151b0cd0bc95379a72df
MD5 cf974cb6b1c6be4f30ab2b2beae1b671
BLAKE2b-256 12e8271ec4a02ff73a17617357c815d361c658925ef25afa94d8180748c4b634

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.3.1-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f9be6bac0cf065327ddf6e151318c0a6424d9a160f6789ffc10d6da945af7cc7
MD5 f3df66f3349586e33b35f3270309ca99
BLAKE2b-256 60ad0f16d702f55f820f94523e65f38393f88e80c58499e485d3971599efe2c7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.3.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a5e2a9a04c3bd36b5dec631fec16e4b004695ecbb029625c155198e61880df35
MD5 237d6fcce97eee5038ccc46d53bbfb79
BLAKE2b-256 ed8a9a9c055e6cde3b29c1086c7cbd51a8fee8edf43e50f54d0da48f04b1a77a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.3.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3ca4820107f829fc14a54c4dafbd97bc2942102bc1b770879dcf2675c209d2d1
MD5 363f6434da394d96ae00319a669fd19e
BLAKE2b-256 258c13d33f5d92e48bb0880a42b44ed887acd54ec1cd54a276dbf6c29ee4ea46

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.3.1-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a903f5328cf6ccaa985db1680f93e44f08bcb421c9687ca36f571f32aa947f64
MD5 1cce196775d233ddf6842a67b675bac8
BLAKE2b-256 32791d2093961cfd0ed137b800a90fadb0fd60e4268718ae43ce8508a7a84270

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.3.1-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 352f0f54baf648864fa327f661ba43e0f6cacffed79cb36d4d25cebbf79c2783
MD5 06d51c8b9b7ab4a0317c1c1daf3a33cd
BLAKE2b-256 e1111142d4c5e402a35ae9e38c266721451d2a93c9ca1ae4b93e2ddb41565d27

See more details on using hashes here.

Provenance

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

0.4.1

6 files

0.4.0

6 files

This release

0.3.1 This release

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