RabbitMQ transport implementations for the PolyBus message bus framework, available in .NET, Python, and TypeScript.
- .NET SDK 10.0+
- RabbitMQ server with management API enabled
- Python 3.8+
- pip
- Node.js 18+
- npm 9+
src/
dotnet/ — .NET (netstandard2.1 library, net10.0 tests)
python/ — Python implementation and tests
typescript/ — TypeScript/Node.js implementation and tests
Located in src/dotnet/
- PolyBus.Transports.RabbitMq — Core RabbitMQ transport library targeting
netstandard2.1 - PolyBus.Transports.RabbitMq.Tests — NUnit integration test suite targeting
net10.0
See .NET README for full setup, build, and test instructions.
Located in src/python/
- transport/rabbitmq — Python RabbitMQ transport package
- tests/transport/rabbitmq — pytest integration test suite
See Python README for full setup, build, and test instructions.
Located in src/typescript/
- src/ — TypeScript RabbitMQ transport package
- test/ — Vitest unit and integration tests
See TypeScript README for full setup, build, and test instructions.
cd src/dotnet
dotnet restore PolyBus.Transports.RabbitMq.slnx
dotnet build PolyBus.Transports.RabbitMq.slnx
dotnet test PolyBus.Transports.RabbitMq.slnxcd src/python
pip install -e ".[dev]"
python -m pytestcd src/typescript
npm install
npm run build
npm testAll three implementations share the same routing conventions:
- Command, event, and direct exchanges.
- Dead-letter queue setup.
- Delayed delivery using binary routing segments and TTL dead-letter chaining.
- Routing key format:
- Publish:
MessageType.Endpoint.Name.Major.Minor.Patch - Subscribe:
MessageType.Endpoint.Name.Major.#
- Publish:
All implementations default to:
amqp://guest:guest@localhost:5672
Set RABBITMQ_CONNECTION_STRING to override in tests.
- RabbitMQ not reachable — confirm the server is running and the connection string host/port are correct.
- Management API unavailable — .NET integration tests require the management plugin on port
15672. - Language-specific issues — see the README in the relevant
src/subdirectory.
- Keep behavior consistent across all three implementations.
- Run each implementation's full test suite before committing.
- Update the relevant
src/*/README.mdwhen adding features or changing configuration options.
See the LICENSE file for details.