Skip to main content

Python SDK for EloqStore — high-performance hybrid-tier KV storage engine

Project description

eloqstore — Python SDK

PyPI Python

Python SDK for EloqStore, a high-performance hybrid-tier key-value storage engine. Combines object storage (S3) with local NVMe SSDs for exceptional write throughput and sub-millisecond read latency.

Installation

pip install eloqstore

Requires Linux kernel 6.8+ (uses io_uring).

Quick Start

from eloqstore import Client, Options

client = Client(Options(table_name="demo", partition_id=0, num_threads=1))
client.put("hello", b"world")
assert client.get("hello") == b"world"
assert client.exists("hello")
client.delete("hello")
client.close()

Disk Persistence

from eloqstore import Client, Options

client = Client(
    Options(
        store_paths=["/data/eloqstore"],
        table_name="mydb",
        partition_id=0,
        num_threads=4,
    )
)
client.put("key", b"value")
client.close()
# Data persists — reopen later with the same store_paths

INI Configuration

from eloqstore import Client, Options

client = Client(
    Options(
        store_paths=["/data/eloqstore"],
        options_path="/etc/eloqstore.ini",
        table_name="mydb",
        partition_id=0,
        branch="feature-x",
        term=7,
    )
)

API

Method Description
Client(options) Create a client with Options
put(key, value, *, timestamp) Upsert a key-value pair
get(key) Get value by key, returns None if missing
get_into(key, out_buffer) Read value into a pre-allocated buffer
exists(key) Check if key exists
delete(key, *, timestamp) Delete a key
batch_put(items, *, timestamp) Batch upsert multiple key-value pairs
batch_get(keys) Batch get multiple values
batch_delete(keys, *, timestamp) Batch delete multiple keys
close() Close the store, release resources

Building from Source

cd python
python -m pip install build
python -m build --wheel
pip install dist/*.whl

If the shared library is not auto-discovered, set:

export ELOQSTORE_PY_LIB=/path/to/libeloqstore_capi.so

License

BSL 2.0 or AGPL 3.0 (dual-licensed). See LICENSE.md.

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 Distribution

If you're not sure about the file name format, learn more about wheel file names.

eloqstore-1.1.1-py3-none-manylinux_2_31_x86_64.whl (926.5 kB view details)

Uploaded Python 3manylinux: glibc 2.31+ x86-64

File details

Details for the file eloqstore-1.1.1-py3-none-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for eloqstore-1.1.1-py3-none-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 5eab69f86456cc0a1c8d6468c0ed34193d39aa012ca417edc8d2b576f238737c
MD5 6d0f82a50e8040c8f1ac8391e4390bc4
BLAKE2b-256 4ab9b5b4a603ef3bdc8565ac59836acb4d1ef93e12356d5ca9612d3d3e7ab68c

See more details on using hashes here.

Provenance

The following attestation bundles were made for eloqstore-1.1.1-py3-none-manylinux_2_31_x86_64.whl:

Publisher: release.yml on eloqdata/eloqstore

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