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

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

infino-0.1.5-cp39-abi3-musllinux_1_2_aarch64.whl (50.2 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

infino-0.1.5-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (50.8 MB view details)

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

infino-0.1.5-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (50.1 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

infino-0.1.5-cp39-abi3-macosx_11_0_arm64.whl (45.0 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

infino-0.1.5-cp39-abi3-macosx_10_12_x86_64.whl (47.7 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

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

File metadata

File hashes

Hashes for infino-0.1.5-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 27b5c9f8994bf3d462c5c8f8aa7f9bafe421e4b17cc0d9d6a43d276a1f8a2379
MD5 edb0d2b47a89bddd32632d05b9a7966f
BLAKE2b-256 6b2d133cad16825d8a04e319ebf33b9d7ec27b70a04e506bb0bd75d04ad050da

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.5-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 81617ec3195f5c27ef9afa6c856d0689d737833c451e62508cd276551f8ab798
MD5 e2c1d09f80fec05a6b1213d4483c0228
BLAKE2b-256 7570cd40dd13cbcde8f9122469bd3b1d4b6169f04f8ff9165a1d8b458573c37b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.5-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2881d3c8a2e2aefe250f0a80516fd013d6f7cd087e8ebbc1fc89b01addc88496
MD5 840361dcc92f3a9d426d0dae475fa6d2
BLAKE2b-256 5cd1e274532c754a283b7aca31e694fc7449f091181ae0d3927641a493217a24

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.5-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 409e78610b812a6cd6ecddffb68c287a6c7a7c19083ce7c8d5edbf3f57093ce4
MD5 71a37ba6f0db222524c7991df4c9931e
BLAKE2b-256 254454d0dd2a2b997eb74720569ae863455b91b88e2379beb9744604add4e5a0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.5-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d16c5c7fc5392f645aa1eb2251a3cbc721361c6b41aeeece833f99e4139232a1
MD5 8ebdaa592a21b3c8edbd427ff74795bb
BLAKE2b-256 3fb857e1f5e692df6d9c2133186ffd5d8518c16c99f5781d1a0098dcaf148193

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.5-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 86c7ff9feea56b6d4740a63f74994a480000c7bdc629eaff1b5588633637aeb3
MD5 2440a561107bf9b87fdcdfd0dcdf5dee
BLAKE2b-256 10a0ba3f2f3834f06e2706d18aa48108fa30c6b12aa107a4033327c7f48049b6

See more details on using hashes here.

Provenance

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

0.1.9

6 files

0.1.8

6 files

0.1.7

6 files

0.1.6

6 files

This release

0.1.5 This release

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