Bussin is a client-side Azure Service Bus explorer. It runs entirely in your browser as a Progressive Web App (PWA). You can access the live version at https://bussin.dev.
Because all connections are established directly from your browser to Azure, there is no backend proxy or intermediate server transiting your credentials or messaging payloads.
- Background Operations: Run connection-safe bulk actions in the background without freezing the user interface.
- Batch Transmissions: Send high-volume message payloads using concurrent AMQP pipelining.
- Bulk Management: Resubmit or delete combinations of active and dead-letter messages with dynamic depth-locking to prevent data loss.
- Namespace Organization: Manage multiple Entra ID environments using folder nesting and text searching.
- Message Search: Search and peek messages using property and body pattern matching.
For visual walkthroughs, screenshots, and detailed guides of these features, visit the website at bussin.dev.
While Bussin supports most Azure Service Bus operations directly in the browser, there are a few limitations to keep in mind:
- Batch Send on Session-Enabled Entities: Batch sending does not currently support session-enabled queues or topic subscriptions (which require a Session ID for each message).
- Partitioned & Session-Enabled Entities: Certain administrative actions (such as the portal-based fast batch delete/purge API) are not supported by the Service Bus broker on partitioned or session-enabled entities. Bussin automatically falls back to compatible data-plane receiver flows (such as parallel receivers or sequential session loops) in these cases to complete the operation safely.
- Direct Client-Side Architecture: Your data never leaves your browser. Bussin communicates directly with Azure APIs.
- Zero Installation: Access the tool online at https://bussin.dev or install it as a PWA.
- Entra ID Integration: Authenticate securely using your existing Azure identity and Role-Based Access Control (RBAC) roles.
Bussin operates under a 100% proxy-free, client-side security model.
When you open Bussin, your browser acts as the direct orchestrator of all network and authentication flows, bypassing intermediate relay servers or third-party databases.
graph TD
subgraph "Browser Sandbox (100% Client-Side)"
direction TB
UI["Blazor WASM UI / Blades"]
State["ExplorerViewModel & Cache"]
MSAL["MSAL.js Authentication"]
subgraph "Network Stack"
ARMClient["ARM HTTP Client"]
AMQPClient["Rhea AMQP-over-WebSockets"]
end
end
subgraph "Azure Cloud Endpoints"
direction TB
AAD["Entra ID"]
ARM["Azure Resource Manager <br> management.azure.com"]
ASBData["Service Bus Data Plane <br> namespace.servicebus.windows.net"]
end
%% Authentication flows
MSAL -.->|"1. Authenticate and Consent"| AAD
AAD -.->|"2. Return Access Tokens"| MSAL
%% ARM Resource Discovery
UI -->|"Discover Namespaces"| State
State -->|"3. Query Resources <br> REST + CORS"| ARMClient
ARMClient -->|"HTTPS GET <br> Auth: Bearer ARM Token"| ARM
%% Service Bus Data Plane Operations
State -->|"4. Active Messaging Operations"| AMQPClient
AMQPClient -->|"WSS Tunnel <br> Bypasses CORS"| ASBData
AMQPClient -->|"5. CBS Handshake <br> Auth: SB Token"| ASBData
- Azure Resource Manager (ARM) Discovery: Bussin queries the Azure management API over HTTPS using standard CORS (Cross-Origin Resource Sharing) requests. This enables automatic resource discovery of subscriptions, resource groups, namespaces, queues, and topics without typing connection strings.
- Azure Service Bus Data Plane (CORS Bypass): Standard Azure Service Bus data-plane REST endpoints lack CORS headers, which prevents standard browser HTTPS REST calls. Bussin bypasses this restriction by establishing direct AMQP 1.0 connections over secure WebSockets (
wss://<namespace>.servicebus.windows.net:443/$servicebus/websocket), which do not fall under CORS restrictions. - Identity and Claims-Based Security: All communication is secured using your active Entra ID tokens. The client performs an AMQP Claims-Based Security (CBS) handshake with the
$cbsnode of the namespace directly, matching standard enterprise security policies without storing credentials.
Bussin serves as a cross-platform, web-native alternative to traditional desktop messaging clients:
- No Backend: Unlike other web-based explorers, Bussin has no backend. Your Service Bus connection strings or tokens are never sent to external servers.
- Clean UI: A responsive interface built with Blazor WebAssembly.
- Dev-Focused: Simple debugging for queues, topics, and subscriptions.
Bussin respects your Azure RBAC configuration. It uses two-step delegated consent:
- Azure Management API: To list namespaces and entities.
- Azure Service Bus: For data-plane operations (Peek, Send, etc.).
Required Roles: Azure Service Bus Data Owner, Receiver, or Sender.
Requirements:
- .NET 10 SDK
- Node.js 20+
# Build client-side AMQP library
cd client-js && npm ci && npm run build
# Build Blazor WASM app
cd ../src && dotnet publish -c ReleaseWhen creating a new release of Bussin on GitHub, please ensure the release notes include a link pointing back to the official site:
For more details and live usage, visit https://bussin.dev.
Business Source License 1.1 (BSL) - See LICENSE file for details.
- Usage of the software is always free for personal, educational, or internal business use.
- Commercial redistribution, rebranding, or hosting this software as a service (SaaS) by third parties is prohibited.
Disclaimer: Bussin is a community tool and is not officially supported by Microsoft. Use at your own risk.
Looking for the marketing website or documentation source code? Visit sgebb/bussin-site.