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

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

infino-0.1.8-cp39-abi3-musllinux_1_2_aarch64.whl (57.0 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

infino-0.1.8-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.8-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.8-cp39-abi3-macosx_11_0_arm64.whl (51.2 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

infino-0.1.8-cp39-abi3-macosx_10_12_x86_64.whl (54.1 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

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

File metadata

File hashes

Hashes for infino-0.1.8-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e7303b5b53fa988000346e6771811ce32a63f240a4d1ddfa458506a6cc218ec3
MD5 545db4a7946d2b1bc5c3a5da8a9d5fb2
BLAKE2b-256 1851235e3c7393c0338603e2fa0d7db639546bafc20a6647d7474dc1a51cc454

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.8-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 87b1cc6519c06c7aabc4f9e3a91b4cb3a14cb98644eea73094cb1c0ec00d8c2f
MD5 7fd867ad25c85914128d85d80dbf2f39
BLAKE2b-256 9ce0d860a0a1bece478085130ae39135c9c1a191c01ddb0e96e3ab8b4388b8eb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.8-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dfeff26e0a7998158f44cd26b9e3b39487f835f8ff7b1c7e4356a73771282e35
MD5 aeff9c2655e44479b923b7ac7a34222c
BLAKE2b-256 80567403a4d1fb08464ad4d2706630971cde82d1ae9e73a24b3e539c51545a65

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.8-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9fee88a748ceb4d31699a9c6301eb3d842aa2d28a1f36ee445271cbaccd7f36b
MD5 51361a7808d697252410e73ed540b340
BLAKE2b-256 82038a59e82510775af9a09b6e65a4d24b62ad212508e43fc758cbdb15256162

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.8-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 972f05a6e571989c5b7d708f7757ac21b716e3ff05c45c3aea4d7bf463ac5936
MD5 d27a128b5bd1499fda470cba6ad0cfe8
BLAKE2b-256 cb7a56472eeb23eb62a04484600066d176d441c271ca90fb1093202721abeb87

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for infino-0.1.8-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 0563a600c85bd5618cd6c2ec5c717a4daebbf5cf5938f54ae0ee3b348f8f4f22
MD5 76bae8302e41f1bdec6ca59d234b48db
BLAKE2b-256 0d9b960dcf8a43c8dc3dc619121efcf7af1b4301c58807eebae65e9688e09cc2

See more details on using hashes here.

Provenance

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

This release

0.1.8 This release

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