Skip to main content

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.10+. Pre-built wheels available for Linux (x86_64, aarch64), macOS (x86_64, arm64), and Windows (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() or await 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

Packaging notes

Wheel builds use a vendored Lua 5.4 by default so pip install burner-redis does not require a system Lua.

Packaging systems that already provide Lua can opt out of vendoring and link against that copy instead:

maturin build --release --no-default-features

If auto-detection is not available, point Cargo at the packaged Lua library explicitly:

LUA_LIB_NAME=lua
LUA_LIB=/path/to/lib

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

burner_redis-0.1.7.tar.gz (638.6 kB view details)

Uploaded Source

Built Distributions

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

burner_redis-0.1.7-cp310-abi3-win_arm64.whl (1.0 MB view details)

Uploaded CPython 3.10+Windows ARM64

burner_redis-0.1.7-cp310-abi3-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.10+Windows x86-64

burner_redis-0.1.7-cp310-abi3-musllinux_1_2_x86_64.whl (1.6 MB view details)

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

burner_redis-0.1.7-cp310-abi3-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

burner_redis-0.1.7-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

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

burner_redis-0.1.7-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

burner_redis-0.1.7-cp310-abi3-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

burner_redis-0.1.7-cp310-abi3-macosx_10_12_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file burner_redis-0.1.7.tar.gz.

File metadata

  • Download URL: burner_redis-0.1.7.tar.gz
  • Upload date:
  • Size: 638.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for burner_redis-0.1.7.tar.gz
Algorithm Hash digest
SHA256 7474ff092669fd11ef765411572cdafcc3d89b8054aef4ca0617be6d6be4c680
MD5 3bdd3f0fe1c1815c8fb652f4e23f233f
BLAKE2b-256 528954706febafc135095b2a9d797cfbd4eed2ab1ad7819808b99b587020471b

See more details on using hashes here.

Provenance

The following attestation bundles were made for burner_redis-0.1.7.tar.gz:

Publisher: release.yml on prefectlabs/burner-redis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file burner_redis-0.1.7-cp310-abi3-win_arm64.whl.

File metadata

File hashes

Hashes for burner_redis-0.1.7-cp310-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 458f88feeddfb40a586cc3fcbd8e9384bbdfd2a4512a695af4900e06052570d4
MD5 1e86598387439a1b7734c22e195736c5
BLAKE2b-256 766fe9beaf46c5e9fd10dfcdb889ebf7d3aa85142c650c0ab17ab284194f58e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for burner_redis-0.1.7-cp310-abi3-win_arm64.whl:

Publisher: release.yml on prefectlabs/burner-redis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file burner_redis-0.1.7-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for burner_redis-0.1.7-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 f6cf4ac666766b32fd63940aad0c120847905fd3102c17e5b6b305f91a21d079
MD5 1eec003a0cabbec29cf5f98140575c38
BLAKE2b-256 f530207f47f406619a5b564355d2946c3171f84231a28b800709b5645b06a5ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for burner_redis-0.1.7-cp310-abi3-win_amd64.whl:

Publisher: release.yml on prefectlabs/burner-redis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file burner_redis-0.1.7-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for burner_redis-0.1.7-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 591a9d20685f9d6d22bf0c863b50b12dfcf328b06111b3f62c33cd3185d48ce0
MD5 d1add4b4eeaea2eb4c096a3f80bd5a17
BLAKE2b-256 5cb919bae42cb124932d71168bc8e5bcb1da33aa62b908e5e632b3d298d7cb15

See more details on using hashes here.

Provenance

The following attestation bundles were made for burner_redis-0.1.7-cp310-abi3-musllinux_1_2_x86_64.whl:

Publisher: release.yml on prefectlabs/burner-redis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file burner_redis-0.1.7-cp310-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for burner_redis-0.1.7-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9b5adfe99aeb8407f468078f3769b2a63e9168fea12f7709df5d2a3b152706e4
MD5 7e903581b29776e680f8a3ef739d64b2
BLAKE2b-256 34ad93c3916f053f89b7b5760da5bf855cd78b7885d480f9cfcc64f3732c1dc2

See more details on using hashes here.

Provenance

The following attestation bundles were made for burner_redis-0.1.7-cp310-abi3-musllinux_1_2_aarch64.whl:

Publisher: release.yml on prefectlabs/burner-redis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file burner_redis-0.1.7-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for burner_redis-0.1.7-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 39111467059b8a28f15ea061d2414ec25c3e57c65759983f90f4d358e7d6a72d
MD5 96f1c266f9c34b85795d3426f6e63017
BLAKE2b-256 e13295cfa1833316ca2b6b2e58150a4900bc1ad256043cdd36198f1887618ccc

See more details on using hashes here.

Provenance

The following attestation bundles were made for burner_redis-0.1.7-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on prefectlabs/burner-redis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file burner_redis-0.1.7-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for burner_redis-0.1.7-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 20eba1917e3bca9eea5957d5700ff8defcb5a209e57a7841d005549aa0151f44
MD5 d5867137f558a32d337bd7a457926bf1
BLAKE2b-256 6fc031c25cc88143eac2dddcc394151a0db627923d44c94376a83768552c9f13

See more details on using hashes here.

Provenance

The following attestation bundles were made for burner_redis-0.1.7-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on prefectlabs/burner-redis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file burner_redis-0.1.7-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for burner_redis-0.1.7-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a3d9569a376b690fb5876d454e4904443332dc3ad5c0057e149fc2ad220bf599
MD5 51a4e62898eba3e7900efa826af68c45
BLAKE2b-256 2f4ece5c91b884ac37fcd380756402536f8810964014097950900517ce8bd30c

See more details on using hashes here.

Provenance

The following attestation bundles were made for burner_redis-0.1.7-cp310-abi3-macosx_11_0_arm64.whl:

Publisher: release.yml on prefectlabs/burner-redis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file burner_redis-0.1.7-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for burner_redis-0.1.7-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f80c866996e0455d584eb3c0f3b067e411c632fb0519eab454e0968edf01e62c
MD5 2d0398120fbca599eaacb9852967a0ef
BLAKE2b-256 6c5d198bd1d22e504b3034353430703afbdb3efe6e25cb90bf52d896e1d266a7

See more details on using hashes here.

Provenance

The following attestation bundles were made for burner_redis-0.1.7-cp310-abi3-macosx_10_12_x86_64.whl:

Publisher: release.yml on prefectlabs/burner-redis

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