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

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

infino-0.5.1-cp39-abi3-musllinux_1_2_aarch64.whl (60.1 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

infino-0.5.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.5.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (60.0 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

infino-0.5.1-cp39-abi3-macosx_11_0_arm64.whl (54.1 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

infino-0.5.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.5.1-cp39-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for infino-0.5.1-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 039386be6d86ab62aebec49cd44e64dc7fbe3ab8ec323f19c4768acd7c5647d3
MD5 bd83000332b0f915c5755ded83d5f9e0
BLAKE2b-256 10da6ada77865484a5807025a2528f365a6170df8f74d8e67916e6c8f42c33b4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.5.1-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7f98674708bab198925bc8311f911d65c1328de32e0e6c9eb9ed4bc66c43660d
MD5 ea4e31b84fbe8082c0cef31137b5a204
BLAKE2b-256 be2e0130deeacef77e7058d902f2fa7d6da8f98dabd7bfa725f2e575c56cf23f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.5.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d6cb06229150020c95845bba0ad69b94aae2d264b6d24ed38654dccf4a70575f
MD5 a3a3ae50c051dca945d1ef5b038f1eda
BLAKE2b-256 db07cfeccc49ece88209c84342d775210ce9a90fad7cc3abc355393ca6698dd7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.5.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 080a146c5d00d74a2a68eb22867630462974b371a4684bc68d68734f44eacfff
MD5 4331cc23d864de537e1c454060effb8f
BLAKE2b-256 bf673c9919cc3c61922555c1fe022e69e56bc75013304241c65cc8b806301f78

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.5.1-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 db6066a13bca8d3f9b9a51729ad7a172d4a09a0249a9b6993e8d38353462e6d8
MD5 508233df35ba72a5066650e0cd7684ae
BLAKE2b-256 8d8a3feb6bc467c6f4770448bfa42a77427a02739c412c65150a0fc7ec6ecd52

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.5.1-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d98a4b234011fc6c079f26e94b277f4086522370144818fc2340c55c2e294757
MD5 1a89f838d7c7299ad40973a641faaed3
BLAKE2b-256 67500f92717ff4749f04239dc0132afb5cb3cd80546f3ac717bb2ce2200ee7e2

See more details on using hashes here.

Provenance

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

This release

0.5.1 This release

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