A desktop testing tool for distributed applications. Think Postman, but for message brokers.
Iris lets developers visually connect to message brokers, send and receive messages, and debug event flows — without writing boilerplate test code.
- RabbitMQ — queues, exchanges, and routing
- Azure Service Bus — queues and topics
- Azure Storage Queues
- AWS SQS
Messages can be wrapped in framework-specific envelopes:
- MassTransit
- NServiceBus
- EasyNetQ
- Wolverine
| Layer | Technology |
|---|---|
| Runtime | .NET 10, C# 14 |
| Desktop | Hermes (cross-platform native window + WebView) |
| UI | Blazor + MudBlazor |
| Infrastructure | Mythetech Framework (message bus, settings, desktop services) |
| Local Storage | LiteDB (embedded NoSQL) |
| Distribution | Velopack |
Iris/
├── Iris.Desktop/ # Main desktop application entry point
├── Iris.Components/ # Shared Blazor UI components
├── Iris.Contracts/ # Shared DTOs and interfaces
├── Iris.Brokers/ # Message broker connectors
├── Services/
│ ├── Assemblies/ # Dynamic assembly loading for message types
│ ├── History/ # Message history persistence
│ ├── Iris.Brokers.Frameworks/ # Framework envelope adapters
│ └── Iris.Templates/ # Reusable message templates
├── Iris.Components.Test/ # bUnit component tests
├── Iris.Integration.Tests/ # Testcontainers integration tests
└── docs/ # Architecture documentation
- .NET 10 SDK (10.0.100 or later)
- Message Brokers (optional) — RabbitMQ, Azure Service Bus, etc. for testing
git clone https://github.com/Mythetech/Iris.git
cd Iris
dotnet restore
dotnet build
dotnet run --project Iris.Desktop# All tests
dotnet test
# Component tests only (no Docker required)
dotnet test Iris.Components.Test
# Integration tests (requires Docker for Testcontainers)
dotnet test Iris.Integration.Tests- Broker Connections — connect to local or cloud broker instances
- Message Publishing — send messages to queues and topics with framework wrapping
- Message Consumption — listen to and inspect incoming messages
- Auto-Discovery — automatically detects local RabbitMQ and Azure Storage Emulator
- Message History — persists sent/received messages locally via LiteDB
- Templates — save and reuse common message patterns
- Dynamic Type Loading — load assemblies to use your own message contracts
- Settings — configurable via Mythetech Framework settings panel with local persistence
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes
- Push to the branch
- Open a Pull Request
MIT — see LICENSE for details.