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

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

infino-0.1.10-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.10-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.10-cp39-abi3-macosx_11_0_arm64.whl (53.2 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

infino-0.1.10-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.10-cp39-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for infino-0.1.10-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 118878ef98cce36f754c615924d1cc4a2676e7b1d2c0e33edd382d9991d932c7
MD5 cf92bd88312c98fd6dcfaff174871426
BLAKE2b-256 aca7b702627eb5d41c4231eb52e3202ec6e8e1aac915bfdcd2bf879bde6ac511

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.10-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 44fe85f8df697bc0087412265d78abd366a418b9578e7dca0e73f090dcb24d3c
MD5 0dcffe47e768fd49beebb5ad31612684
BLAKE2b-256 50451f6aaab4f998b3e73f72f206475bde6f662c8d63eaaf91e7f7c6ee4ca3e8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.10-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a373dd09b7cf7d7c19818c5eab1f4fecb8fb8b58a9e5f2da2443db0aa593d57e
MD5 7853eef8772f9484af01be83d22f265f
BLAKE2b-256 1bda2cffc690f1cd765b1475e01689a2ef7392dbc8722ee4e664c865bdd7b46b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.10-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6c435c9691db0356284d7bab953c1ddaeaf16d261154cbd44c6eabe65110d10f
MD5 45bc935953005ebca3903222d9340b4c
BLAKE2b-256 687639b831cad66358b024606001e3b59061d8b306034ebee4b37322b10c4638

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.10-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 222fd26b7354f0ebc32e7e78fd95679fb18db4d341f713e6bb7bd23399a4efce
MD5 4d30e66b46bbb877392fba9835845d0d
BLAKE2b-256 d6bf1a5bec80f0d4b645707517bbbf1a3196332b8dfb1097d9e848852fc2827b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.10-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 72bbf48b7ad527e866a5d63fa35a47f65e13ff2005736430aec3aa34a50bf6cd
MD5 db90fb48bca6e9e09e25df5d211a8551
BLAKE2b-256 ad97d1c9d5e9d110c8f63d28568e60094d1c8f12708ad5dbd4238a2319162256

See more details on using hashes here.

Provenance

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

This release

0.1.10 This release

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