A .NET Aspire integration for hosting Google Cloud PubSub Emulator.
Install
| Product | Versions |
|---|---|
| .NET |
README
PubSubWebUi π¬
PubSubWebUi is a modern web interface for managing Pub/Sub (Publisher/Subscriber) messaging systems. Built with .NET 10 and Blazor, it provides an intuitive user interface for managing topics and subscriptions in your messaging infrastructure.
β Features
- π Topic Management
- View list of topics
- Create new topics
- View topic details
- π¨ Subscription Management
- View list of subscriptions
- Create new subscriptions
- View subscription details
- β‘ Modern Blazor-based UI
- π» Responsive Layout with Navigation Menu
π¨ Project Structure
The solution consists of three main projects:
- PubSubWebUi: The main web application containing the Blazor UI components and core functionality
- PubSubWebUi.ServiceDefaults: Common service configuration and defaults
- PubSubWebUi.AppHost: Application host configuration and orchestration
βοΈ Key Components
Services
IPubSubService: Interface for Pub/Sub operationsProjectContext: Application context management
Components
- Blocks: Reusable UI components for topics and subscriptions
- Dialogs: Modal dialogs for creating new topics and subscriptions
- Layout: Application layout components including navigation
- Pages: Main application pages
- Models: Data models for topics and subscriptions
π Getting Started
Prerequisites
- π¦ .NET 10 SDK
- π A modern web browser
- π§ Your preferred IDE (Visual Studio 2022+ recommended)
- π Google Cloud Pub/Sub Emulator
Configuration
The application connects to a Google Cloud Pub/Sub emulator by default at http://localhost:8681/. If your emulator is running on a different address, you can configure it using the environment variable:
# Windows
set PUBSUB_EMULATOR_HOST=http://your-emulator-host:port/
# Linux/macOS
export PUBSUB_EMULATOR_HOST=http://your-emulator-host:port/
For Docker:
docker run -e PUBSUB_EMULATOR_HOST=http://your-emulator-host:port/ pubsubwebui
Running the Application
Clone the repository
git clone <repository-url>Navigate to the project directory
cd PubSubWebUiRestore dependencies
dotnet restoreRun the application
dotnet run
The application will be available at https://localhost:5001 (or the configured port).
π¨βπ» Development
This project uses:
- β‘ .NET 10
- π Blazor for the web UI
- π Modern C# features
- ποΈ Component-based architecture
π License
MIT
π€ Contributing
We love your input! We want to make contributing to PubSubWebUi as easy and transparent as possible, whether it's:
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Becoming a maintainer
Development Process
- Fork the repo and create your branch from
main - If you've added code that should be tested, add tests
- If you've changed APIs, update the documentation
- Ensure the test suite passes
- Make sure your code follows the existing style
- Issue that pull request!
Any contributions you make will be under the MIT Software License
In short, when you submit code changes, your submissions are understood to be under the same MIT License that covers the project. Feel free to contact the maintainers if that's a concern.
Report bugs using GitHub's [issue tracker](/issues)
We use GitHub issues to track public bugs. Report a bug by [opening a new issue](/issues/new); it's that easy!
Write bug reports with detail, background, and sample code
Great Bug Reports tend to have:
- A quick summary and/or background
- Steps to reproduce
- Be specific!
- Give sample code if you can
- What you expected would happen
- What actually happens
- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)
License
By contributing, you agree that your contributions will be licensed under its MIT License.
Changes from Previous Version
Adoption Assessment
Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.
Related Guides & Workflows
Learn how to evaluate, integrate, or audit this package in your .NET project.