An embedded, in-process Redis-compatible database
Project description
burner-redis
Experimental: This library is under active development and not yet ready for production use. APIs may change without notice.
An embedded, in-process Redis-compatible database written in Rust with Python bindings. Drop-in replacement for redis.asyncio.Redis that runs inside the host process with no external server needed.
Built to back docket and self-hosted Prefect servers without requiring a separate Redis deployment.
Installation
pip install burner-redis
Requires Python 3.9+. Pre-built wheels available for Linux (x86_64, aarch64) and macOS (x86_64, arm64).
Quick start
from burner_redis import BurnerRedis
db = BurnerRedis()
# Use like redis.asyncio.Redis
await db.set("key", "value")
value = await db.get("key")
# Persistence across restarts
db = BurnerRedis(persistence_path="data.dat")
await db.set("key", "value")
# Data is saved on process exit and reloaded on next start
Supported commands
Strings
SET (with NX/EX/PX), GET, MGET, DELETE, EXISTS, KEYS, TTL, EXPIRE
Hashes
HSET, HGET, HDEL, HGETALL, HVALS, HEXISTS, HINCRBY
Sets
SADD, SMEMBERS, SISMEMBER, SREM
Sorted sets
ZADD, ZREM, ZRANGE (with WITHSCORES), ZRANGEBYSCORE (with WITHSCORES/LIMIT), ZRANGESTORE, ZREMRANGEBYSCORE, ZCARD, ZSCORE, ZCOUNT
Streams
XADD, XREAD, XLEN, XRANGE, XDEL, XTRIM, XGROUP CREATE, XGROUP DESTROY, XREADGROUP, XACK, XAUTOCLAIM, XCLAIM, XINFO GROUPS, XINFO CONSUMERS, XPENDING, XPENDING RANGE
Pub/Sub
PUBLISH, SUBSCRIBE, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBSUB CHANNELS, PUBSUB NUMSUB, PUBSUB NUMPAT
Scripting
EVAL, EVALSHA, SCRIPT LOAD, SCRIPT EXISTS
Python-layer features
- Pipeline — buffer commands and execute in batch, matching
redis.asyncio.Redis.pipeline()semantics - Lock — distributed-style locking with atomic Lua-based release, matching
redis.asyncio.Redis.lock()semantics - PubSub — async message listener with channel and pattern subscriptions
- Script — register and call Lua scripts, matching
redis.asyncio.Redis.register_script()
Persistence
Pass persistence_path to save state to disk on shutdown and restore on startup:
db = BurnerRedis(persistence_path="burner-redis.dat")
- Crash-safe writes (atomic temp file + rename)
- Expired keys excluded from snapshots
- Manual save available via
await db.save()orawait db.save(path="custom.dat") - MessagePack binary format
redis-py compatibility
burner-redis implements a subset of the redis.asyncio.Redis interface — enough to back docket and common Prefect server workflows, but not the full redis-py API. Commands not yet implemented will raise NotImplementedError.
When the redis package is installed, exceptions subclass redis.exceptions.ResponseError and redis.exceptions.NoScriptError so existing error handling works unchanged.
Development
# Prerequisites: Rust 1.85+, Python 3.10+, uv
# Development build
uv run maturin develop
# Run tests
uv run pytest
# Run Rust tests
cargo test
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file burner_redis-0.1.0.tar.gz.
File metadata
- Download URL: burner_redis-0.1.0.tar.gz
- Upload date:
- Size: 423.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d855ac6a5c8160baadedacf6a425e540c3ac67397a8df05ea2dcfabcbe15ee77
|
|
| MD5 |
681a4c7c55c1150e97944da14a02fbc1
|
|
| BLAKE2b-256 |
78e690e12237c1f3aca6c1e2b02994a5c0d9ad62f50865f16e48df22dea99598
|
Provenance
The following attestation bundles were made for burner_redis-0.1.0.tar.gz:
Publisher:
release.yml on prefectlabs/burner-redis
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
burner_redis-0.1.0.tar.gz -
Subject digest:
d855ac6a5c8160baadedacf6a425e540c3ac67397a8df05ea2dcfabcbe15ee77 - Sigstore transparency entry: 1311092424
- Sigstore integration time:
-
Permalink:
prefectlabs/burner-redis@756ad5024f5e2b0e2f0c815ff6652dc6affc9c59 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/prefectlabs
-
Access:
internal
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@756ad5024f5e2b0e2f0c815ff6652dc6affc9c59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file burner_redis-0.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: burner_redis-0.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96ea396ab161278d1979cc34c37cb065176223d4fb3d7470f7b162bb11989959
|
|
| MD5 |
d4504f883b4be8b510a8d970f5f485e8
|
|
| BLAKE2b-256 |
1aba2f41cd2b4cbaccfb90a2b7f7094ffc727bbcdb0ccfa5c77636048b1344f0
|
Provenance
The following attestation bundles were made for burner_redis-0.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on prefectlabs/burner-redis
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
burner_redis-0.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
96ea396ab161278d1979cc34c37cb065176223d4fb3d7470f7b162bb11989959 - Sigstore transparency entry: 1311092487
- Sigstore integration time:
-
Permalink:
prefectlabs/burner-redis@756ad5024f5e2b0e2f0c815ff6652dc6affc9c59 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/prefectlabs
-
Access:
internal
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@756ad5024f5e2b0e2f0c815ff6652dc6affc9c59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file burner_redis-0.1.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: burner_redis-0.1.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e95dd9bae3654206207e903b3b3a651a92836abaed6e836057c96b8c5f319c99
|
|
| MD5 |
217a712b2aa6ada10e4bd2dfeca725cf
|
|
| BLAKE2b-256 |
8cc6ed3dad0a1b726c8432eba344a95db8581ccb9ea05bfcaff76872fe37f8ff
|
Provenance
The following attestation bundles were made for burner_redis-0.1.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
release.yml on prefectlabs/burner-redis
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
burner_redis-0.1.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
e95dd9bae3654206207e903b3b3a651a92836abaed6e836057c96b8c5f319c99 - Sigstore transparency entry: 1311092645
- Sigstore integration time:
-
Permalink:
prefectlabs/burner-redis@756ad5024f5e2b0e2f0c815ff6652dc6affc9c59 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/prefectlabs
-
Access:
internal
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@756ad5024f5e2b0e2f0c815ff6652dc6affc9c59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file burner_redis-0.1.0-cp310-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: burner_redis-0.1.0-cp310-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.10+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
725700c93e1ae50fcbfa03356f30a602f42e882b6d9e534e42ca21f21760c2e0
|
|
| MD5 |
1cef5b8a060e47c77afa164ff131cd39
|
|
| BLAKE2b-256 |
e5c6a3a692c9d8374aff30cf5b00dfc04a79bd0f382454ba6e74ce8e69a057a2
|
Provenance
The following attestation bundles were made for burner_redis-0.1.0-cp310-abi3-macosx_11_0_arm64.whl:
Publisher:
release.yml on prefectlabs/burner-redis
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
burner_redis-0.1.0-cp310-abi3-macosx_11_0_arm64.whl -
Subject digest:
725700c93e1ae50fcbfa03356f30a602f42e882b6d9e534e42ca21f21760c2e0 - Sigstore transparency entry: 1311092585
- Sigstore integration time:
-
Permalink:
prefectlabs/burner-redis@756ad5024f5e2b0e2f0c815ff6652dc6affc9c59 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/prefectlabs
-
Access:
internal
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@756ad5024f5e2b0e2f0c815ff6652dc6affc9c59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file burner_redis-0.1.0-cp310-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: burner_redis-0.1.0-cp310-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.10+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f5dc295c27b3cedc45fe82d8254c7a046627041980d5640c5749c5acad248b3
|
|
| MD5 |
4d07d88598bb97bcc5e20d0a646d25da
|
|
| BLAKE2b-256 |
1b29b7e47cd84ac04a300921acf357a6670712dcc8dfd02d7a88d5736d214612
|
Provenance
The following attestation bundles were made for burner_redis-0.1.0-cp310-abi3-macosx_10_12_x86_64.whl:
Publisher:
release.yml on prefectlabs/burner-redis
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
burner_redis-0.1.0-cp310-abi3-macosx_10_12_x86_64.whl -
Subject digest:
1f5dc295c27b3cedc45fe82d8254c7a046627041980d5640c5749c5acad248b3 - Sigstore transparency entry: 1311092549
- Sigstore integration time:
-
Permalink:
prefectlabs/burner-redis@756ad5024f5e2b0e2f0c815ff6652dc6affc9c59 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/prefectlabs
-
Access:
internal
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@756ad5024f5e2b0e2f0c815ff6652dc6affc9c59 -
Trigger Event:
push
-
Statement type: