Skip to main content

chat-adapter-state-ioredis

ioredis-flavoured Redis state adapter for chat-py. Python port of upstream packages/state-ioredis.

Why this package exists

In Node.js, upstream ships two separate state packages — @chat-sdk/state-redis (wraps the modern redis / node-redis client) and @chat-sdk/state-ioredis (wraps the legacy ioredis client). Python has no such split: redis.asyncio is the canonical async client. So this package is a thin subclass of RedisStateAdapter — behaviour is identical; the only difference is the lock-token prefix (ioredis_ vs redis_), which matches upstream byte-for-byte so a single Redis instance can host mixed Python / TypeScript clients that inspect the token prefix.

Install

uv add chat-py-adapter-state-ioredis

Minimal example

from chat import Chat
from chat_adapter_state_ioredis import create_ioredis_state
from chat_adapter_slack import create_slack_adapter

bot = Chat(
    user_name="mybot",
    adapters={"slack": create_slack_adapter()},
    state=create_ioredis_state(url="redis://localhost:6379"),
)

All other config (client injection, key prefix) is inherited from chat-adapter-state-redis — see that package's README.

Parity notes

  • See chat-adapter-state-redis for the full implementation. The only override is acquire_lock, which emits ioredis_<ts>_<hex> tokens instead of redis_<ts>_<hex>.

Test

uv run pytest packages/chat-adapter-state-ioredis

# Live — shares REDIS_URL with state-redis
REDIS_URL=redis://localhost:6379 uv run pytest packages/chat-integration-tests -k ioredis

Upstream

https://github.com/vercel/chat/tree/main/packages/state-ioredis

Metadata

Release files for chat-py-adapter-state-ioredis 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for chat-py-adapter-state-ioredis 0.1.0
File Interpreter ABI Platform Actions
chat_py_adapter_state_ioredis-0.1.0-py3-none-any.whl Python 3 none any Details for chat_py_adapter_state_ioredis-0.1.0-py3-none-any.whl

Release files / chat_py_adapter_state_ioredis-0.1.0-py3-none-any.whl

Download URL chat_py_adapter_state_ioredis-0.1.0-py3-none-any.whl
Size 4.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
749b5208eff190834e1fd494b5c9e076fbef49b45610ebed1f8f0d65e01a9fed
BLAKE2b-256 checksum
How to use checksums
bd3de4fa51cd3ab230219daa0239c04df0d0f5821eefc8635c73ae54c68a08d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.20 {"installer":{"name":"uv","version":"0.9.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for chat-py-adapter-state-ioredis 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page