Skip to main content

Protobuf messages and python mqtt messaging toolkit

Project description

protobunny logo

Protobunny

Note: The project is in early development.

The protobunny library simplifies messaging for asynchronous tasks by providing:

  • A clean “message-first” API
  • Python class generation from Protobuf messages using betterproto
  • Connections facilities to RabbitMQ
  • Message publishing/subscribing with typed topics
  • Generate and consume Result messages (success/failure + optional return payload)
  • Protocol Buffers messages serialization/deserialization
  • Support “task-like” queues (shared/competing consumers) vs broadcast subscriptions
  • Support async and sync contexts
  • Transparently serialize "JSON-like" payload fields (numpy-friendly)

Requirements

  • Python >= 3.10, < 3.13
  • A running RabbitMQ instance (v4.0+ is preferred)

Project scope

Protobunny is designed for teams who use messaging to coordinate work between microservices or different python processes and want:

  • A small API surface, easy to learn and use, both async and sync
  • Typed RabbitMQ messaging
  • Consistent topic naming and routing
  • Builtin task queue semantics and result messages
  • Transparent handling of JSON-like payload fields as plain dictionaries/lists
  • Optional validation of required fields
  • Builtin logging service

Usage

See the Quick example for installation and quick start guide on this repo.

Full documentation is available at https://am-flow.github.io/protobunny/.


Development

Run tests

make test

Integration tests (RabbitMQ required)

Integration tests expect RabbitMQ to be running (for example via Docker Compose in this repo):

docker compose up -d
make integration-test

Future work

  • Support grcp
  • Support for RabbitMQ certificates (through pika)
  • More backends:
    • multiprocessing.Queue or queue.Queue for simple local scenarios
    • Mosquitto
    • Redis
    • NATS
    • Cloud providers (AWS SQS/SNS)

License

MIT Copyright (c) 2025 AM-Flow b.v.

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

protobunny-0.1.1b0.tar.gz (46.4 kB view details)

Uploaded Source

Built Distribution

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

protobunny-0.1.1b0-py3-none-any.whl (54.5 kB view details)

Uploaded Python 3

File details

Details for the file protobunny-0.1.1b0.tar.gz.

File metadata

  • Download URL: protobunny-0.1.1b0.tar.gz
  • Upload date:
  • Size: 46.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.7

File hashes

Hashes for protobunny-0.1.1b0.tar.gz
Algorithm Hash digest
SHA256 dd2cc38b4c8fad78c1b89bd2f0335200aa6ac55b58991bdc493ef77a46e8bda9
MD5 2df78999855c9d4cfaade3f22c3eada5
BLAKE2b-256 48965f65b96020823de30f357589a4cf6e7ab4f4ba5840597a3183ee433d0f83

See more details on using hashes here.

File details

Details for the file protobunny-0.1.1b0-py3-none-any.whl.

File metadata

File hashes

Hashes for protobunny-0.1.1b0-py3-none-any.whl
Algorithm Hash digest
SHA256 334c81ce469879bbb5918b2828f98f5b31139187cc9d333b4b3737b20d8d6fb9
MD5 7da676fa738a92ff8947b3bf2878118e
BLAKE2b-256 3f1a4b9b005a829d74e4433efa904dd8be878d7323f7ba251dc02c8651e7d612

See more details on using hashes here.

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