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 and Redis messaging with protobuf messages as payloads
  • 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
  • Alternative configurable backends (e.g. rabbitmq, redis or python for local in-process queues)

Usage

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

Full docs are 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:
    • 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.1.tar.gz (63.7 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.1-py3-none-any.whl (82.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for protobunny-0.1.1.tar.gz
Algorithm Hash digest
SHA256 93638e1315dd76b8b867b27893be8086677ee11a2f15971c36ae048bc5641eae
MD5 c6ba094d17c70aaf80f6de279ebf9069
BLAKE2b-256 837b5d183fc4bf0f6c1da3ac56c1e258f8794947297edbfe1a1b483428e2ad35

See more details on using hashes here.

File details

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

File metadata

  • Download URL: protobunny-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 82.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.7

File hashes

Hashes for protobunny-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8f3109c6abda000029f9a1f790970dc2c6836ca5545453c6404b8edb81e2e3dd
MD5 59ae664cf0daece8abc5cf4da1faa62c
BLAKE2b-256 530ee825a354fe4a621c54d81028bf0f0c44fb73ed47b3ac61da8c085247a502

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