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

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

infino-0.2.1-cp39-abi3-musllinux_1_2_aarch64.whl (59.2 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

infino-0.2.1-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.2.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (59.1 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

infino-0.2.1-cp39-abi3-macosx_11_0_arm64.whl (53.4 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

infino-0.2.1-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.2.1-cp39-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for infino-0.2.1-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d289ca0e595e25d398416610ea771599fea42148e7c5e64b3c5b928e8d4a7df9
MD5 056d6dc35e7f2dfba1e72fb6359f79e8
BLAKE2b-256 4083a05f01a556ee159c51008c12217c93358a986c2ed004e220e15f96865a2a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.2.1-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 820592fac2a62c289e23878a30ee461fd5b08937af73a8316d1c3ae998d4ecf9
MD5 2666160379461df21e0f52476d3da11b
BLAKE2b-256 04be9ff568fe819cfa384dcba26c9d6541555ff45eb82561bbe95175150c0412

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.2.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 278c0b25bfbacd9f6d13080da4f8d904e76f23b119e384ff44793e00ef790dae
MD5 75a682df23697012a2106eeb4763435c
BLAKE2b-256 39410de4490f3584a3eca3f30d0ecc6c13f955e6307f4ed107fe10c01f4494d3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.2.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0400ff8536eb06c5dda410d878e4cf67ecee1b1a38df7d8078f0899e63ae9382
MD5 67c26f98a1c0886972ee6357f754203f
BLAKE2b-256 1cae629dc603e2c0a7751af7bcb3829703fb20bafdb27b13578dbbe4660ce436

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.2.1-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 417206aa686b5015b425477496e712d499cd7a8ecd320c4d9acb7c52448ef5b7
MD5 ed28d3da4217afea09663257b678df43
BLAKE2b-256 89711c5b63c3c1ac9615711db77497c6b74c9ca97762559ada706c2a7166dff7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.2.1-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d9f72fed3e1e3e4b848c2c197296186dcbec4a1ed150a87a191e8bf75d4c5828
MD5 5f954bf93d34562fd64014b36f8dff6e
BLAKE2b-256 70a3f0334bf5ee41d72ae55ef566e29f217ac219a3656cc7dd31f6cd4c782e19

See more details on using hashes here.

Provenance

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

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

This release

0.2.1 This release

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