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

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

infino-0.1.7-cp39-abi3-musllinux_1_2_aarch64.whl (56.9 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

infino-0.1.7-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (57.5 MB view details)

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

infino-0.1.7-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (56.8 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

infino-0.1.7-cp39-abi3-macosx_11_0_arm64.whl (51.1 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

infino-0.1.7-cp39-abi3-macosx_10_12_x86_64.whl (54.2 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

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

File metadata

File hashes

Hashes for infino-0.1.7-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 36dc44ec03a0b5f21bce9d5d8cacbea6662e452c200e2a461f051db4a05b135e
MD5 1397ff66e065ebd999ca15b33023ea05
BLAKE2b-256 ea7f889c2f749d5cf0c44f06f4a28b21db7ed10ea93de8a4cd8dd0ab82453909

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.7-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0edccf4413e90f9de8774a42cf7a2b4c6b04916add2458d3528be1f2cd07d697
MD5 fa93c6770228d7e7633c29f2a7ce7289
BLAKE2b-256 ffb97cf71f6a8ba18877dc8687cdac338129d463897fd0e2ab2720644eb92ab4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.7-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 61c27b1511caebe1bf5658804b59d4496c038821aaad786bf41c57ec04107edb
MD5 69ca4791c319a22ec8b1c1a032f8a9ce
BLAKE2b-256 8751706c42c3e9822da3cb7c920ab8c17154bc00494c8672bd2ed0cf165b56b5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.7-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fb044dc20b3fb47a2a1a0e92b36632b09b544807eeda1ff054f4754e9a2bda20
MD5 508d815a1745ccc1af793f9e4dbd3514
BLAKE2b-256 e1aa830bddda4fcf8af1bd042ee34c78d03563a77e7eb7f128bf9309d9194b59

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.7-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7b1b7fdca45e0bd44d1802dea50fc068b88511ab88c4f972505199d702282afd
MD5 23781edaa19567243e5e24122551e65e
BLAKE2b-256 6f70160fd3bbcc5d3e1f0977a859571ed2994fd452048263591f264da58dde06

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.7-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8107b9ef684344aa70ef0e667c1708079e53e053d3ceb2003226829bbc41a365
MD5 03dcf788089e25708e20f7f0b78d41c2
BLAKE2b-256 151f4e79301c2f38bb61f14ccf672e0660929ae34ab43174e6d38aafeb2b60a7

See more details on using hashes here.

Provenance

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

This release

0.1.7 This release

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