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-redisfor the full implementation. The only override isacquire_lock, which emitsioredis_<ts>_<hex>tokens instead ofredis_<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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.