repid
Repid is a simple, fast, and extensible async task queue framework, with built-in AsyncAPI 3.0 schema generation.
pip install repid
Features
-
AsyncAPI 3.0 out of the box - your schema is generated automatically as you build. No separate spec files to maintain, no drift between code and docs.
-
Broker flexibility - works with RabbitMQ, Redis, AWS SQS, Kafka, NATS, and Google Cloud Pub/Sub. Switch or run multiple brokers side by side without changing your actor code.
-
Extreme performance - built for maximum throughput and minimal overhead, making it the fastest async task queue in the Python ecosystem.
-
Developer ergonomics - define actors as plain async functions with dependency injection and Pydantic argument validation.
-
Built for testability - a drop-in
TestClientlets you test actors in-memory without a running broker, making unit tests fast and dependency-free. -
LLM-friendly documentation - grab
llms.txtorllms-full.txtfrom the docs site to feed into your favorite AI coding assistant.
Quickstart
Here is how the simplest producer-consumer application looks, using AMQP server.
Producer:
import asyncio
from repid import AmqpServer, Repid
app = Repid(title="My App", version="1.0.0")
app.servers.register_server(
"default",
AmqpServer("amqp://user:password@localhost:5672"),
is_default=True,
)
async def main() -> None:
async with app.servers.default.connection():
await app.send_message(
channel="default",
payload=b"",
headers={"topic": "awesome_job"},
)
asyncio.run(main())
Consumer:
import asyncio
from repid import AmqpServer, Repid, Router
app = Repid(title="My App", version="1.0.0")
app.servers.register_server(
"default",
AmqpServer("amqp://user:password@localhost:5672"),
is_default=True,
)
router = Router()
@router.actor
async def awesome_job() -> None:
print("Hello async jobs!")
await asyncio.sleep(1.0)
app.include_router(router)
async def main() -> None:
async with app.servers.default.connection():
await app.run_worker()
asyncio.run(main())
Check out user guide to learn more!
License
Repid is distributed under the terms of the MIT license. Please see License.md for more information.
Repid's logo is distributed under the terms of the CC BY-NC 4.0 license. It is originally created by ari_the_crow_.
Metadata
Release files for repid 2.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| repid-2.1.4.tar.gz | 511.1 kB | Without provenance | Details for repid-2.1.4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| repid-2.1.4-py3-none-any.whl | Python 3 | none | any | Details for repid-2.1.4-py3-none-any.whl |
Total release size: 700.2 kB
Release files / repid-2.1.4.tar.gz
| Download URL | repid-2.1.4.tar.gz |
|---|---|
| Size | 511.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d71381b1c39b1caff0bbe060de77799a25fe50583d4ae7e206c0855a810447d8
|
|
BLAKE2b-256 checksum How to use checksums |
4f9e4e24eac5cc3d79882b37869182e91bc6de038dc956f4db5a970e514a0ed7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / repid-2.1.4-py3-none-any.whl
| Download URL | repid-2.1.4-py3-none-any.whl |
|---|---|
| Size | 189.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f3b8eed4294d5cee3175b379abd2082f615c532e1520af950ae561a43856a81b
|
|
BLAKE2b-256 checksum How to use checksums |
788f039c358c2875260d41e03112f09a1d01a624986e9544b270ee3f6923df8b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for repid 2.1.4
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.