Skip to main content

Fast search on object storage — SQL, full-text, and vector search.

Project description

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.
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 docs.infino.ai:

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.

Project details


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

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

infino-0.1.4-cp39-abi3-musllinux_1_2_aarch64.whl (49.9 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

infino-0.1.4-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (50.6 MB view details)

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

infino-0.1.4-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (49.8 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

infino-0.1.4-cp39-abi3-macosx_11_0_arm64.whl (44.8 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

infino-0.1.4-cp39-abi3-macosx_10_12_x86_64.whl (47.5 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

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

File metadata

File hashes

Hashes for infino-0.1.4-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 369810f4d20d4f7565fde527c062681c7952ecedcde238826269850e14484b2e
MD5 31cc50ba1878558759ed6377b14d756a
BLAKE2b-256 b2fbeb12a276f438abedabab38456a075536200f0e8de1154a033af4434dfa33

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.4-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c876de3dcb1493d163cdee67e25ac7d3c37faffd4b853af9e432e010bbed1d1d
MD5 94ced70d014d3f6d0f47419465c8971a
BLAKE2b-256 59b22e767284ce633f03d2fbf4b3734cc5346c92ded8d3c482f9491619f36a48

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.4-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6ca6d31b7a46f2db93e78943dafe1a3a25974feeb050d097ed4346b2bfd8f20a
MD5 f185740181c62eb734e7bb5b1fe0f3d3
BLAKE2b-256 119f08c6999308c304eb16b210c3306b204823e4541612f90a6b2504a6a0e5a7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.4-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 75c0b5a17beedfdc41efda967b594ae20b2f5a0bf60d09fda32eaca5067947ab
MD5 7234dd648f04722c62ffe70d5d1f17ca
BLAKE2b-256 630a658c6df8659c35a1ff3a7f697633e054093cf79bd4d86f09385ca420c83a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.4-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bb3fc13733a565c30dacc98eda76a516d3d704e3d2491ae19bb06c99faff46bb
MD5 da6dd27b8adc28ee1ae7bcecbec7e99d
BLAKE2b-256 63297962f1346b52725a739a7ffe0c389bb8df516b705b05933a51e0da947688

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.4-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6d997fdad9b005aacff5e85610a0eabc24a1b1c687ce2b9beedb295cde9de641
MD5 597ba43cf6dd8ce27af1387f28cc6142
BLAKE2b-256 e4c2cec48ae4b8e151b002359a7786234d73d95ba75912efd0d84f745ae1f48d

See more details on using hashes here.

Provenance

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page