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

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

infino-0.4.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (60.3 MB view details)

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

infino-0.4.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (59.8 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

infino-0.4.0-cp39-abi3-macosx_11_0_arm64.whl (53.8 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

infino-0.4.0-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.4.0-cp39-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for infino-0.4.0-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c13f4b567b9830c97de6f5afc4fac3736fee083a3c8258630320637ef7ee43c8
MD5 dd286c2550600544ab4e0674d824d339
BLAKE2b-256 de9f377ebc8e3bc6b74b451228fb675985b130d9708aa8d0fd71734ea78f1d74

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.4.0-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 56f80052c63adc31ee6c4e8482ab4d492db68a36f450b0a61feafe36fcd5ad0f
MD5 12aaea815c4b49c2318d4305db82ca55
BLAKE2b-256 5bf212a4f2963bf2753d59c2405cd383b51baa45023a9c179d2731b9d9db7323

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.4.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 221f575fa598efe3f5e3db4e7a101067e1b73172e8482d126ce15d5f1e866825
MD5 94ee58a6201798e5098fb15cf08abeaf
BLAKE2b-256 b335c774b0ecdcdaae75b419652eb074c9a5211c684c8f403a3a5b068f0e57c6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.4.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e39e0e24f6c59c57925168e2f93ebda3c761ba2f0968a4db3cc818218b203523
MD5 0dff06d375ae7ad5b620e9ad39b3476a
BLAKE2b-256 8f554ed5defc1fd9e91e3156bd8e7cb361575a282cab9dd3921267f869e1ef10

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.4.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8a2f88eef25dd07d1533df8ba8295e9763827a496356ba4364d2bd077a94dca2
MD5 e62315eaaeb20c731aa4b0c569aae9a8
BLAKE2b-256 0a5921154739af401f448d4651ac13dc39c47ea45a59082c96c7fc13b58b3596

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.4.0-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d85b1148e5fa0ef0b95e765d9d8b39977a302c81208887af6ef3661afa191d6d
MD5 4f91079156537af3c163f420f50f659c
BLAKE2b-256 efb246bf1f81763638442cd3d3007ea1c75a8df4269a49feff7fa35ff95be9c2

See more details on using hashes here.

Provenance

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

This release

0.4.0 This release

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