Skip to main content
Version: v1.2.7

Installation

Hermodr is distributed as a set of NuGet packages. Install only the packages you actually need.

Prerequisites​

Supported Runtimes​

All packages in the Hermodr solution multi-target the following .NET runtimes:

RuntimeVersion
.NET8, 9, 10

.NET 8 is the current Long-Term Support (LTS) release and the recommended minimum for new projects.
.NET 10 is the latest LTS release and is fully supported.

Required Infrastructure​

All packages depend on the Microsoft Dependency Injection infrastructure. Make sure your project references:

dotnet add package Microsoft.Extensions.DependencyInjection

This is already provided automatically in ASP.NET Core, Worker Service, and most other host-based project templates.

ASP.NET Core Requirement​

The Hermodr.Schema.AsyncApi package references the ASP.NET Core shared framework (Microsoft.AspNetCore.App) because it integrates with the Saunter AsyncAPI middleware. It must be used in a project that targets the Microsoft.NET.Sdk.Web SDK or explicitly includes the Microsoft.AspNetCore.App framework reference.

Per-Package Dependencies​

The table below lists the key NuGet packages that each library brings in as transitive dependencies. You do not need to install these directly — they are declared in each package's .nuspec and restored automatically.

PackageKey Transitive Dependencies
Hermodr.Annotations(none — pure attribute library)
Hermodr.PublisherCloudNative.CloudEvents · Microsoft.Extensions.Options · Microsoft.Extensions.Logging.Abstractions
Hermodr.Publisher.AzureServiceBusAzure.Messaging.ServiceBus ≥ 7.20
Hermodr.Publisher.RabbitMqRabbitMQ.Client ≥ 7.2 · Hermodr.Amqp.Annotations
Hermodr.Publisher.MassTransitMassTransit ≥ 9.1
Hermodr.Publisher.WebhookMicrosoft.Extensions.Http.Resilience ≥ 9.6
Hermodr.Publisher.OutboxKista · Microsoft.Extensions.Hosting.Abstractions
Hermodr.Publisher.Outbox.EntityFrameworkHermodr.Publisher.Outbox · Kista.EntityFramework · Microsoft.EntityFrameworkCore.Relational
Hermodr.SubscriptionsHermodr.Publisher · Microsoft.Extensions.Logging.Abstractions
Hermodr.SchemaCloudNative.CloudEvents
Hermodr.Schema.YamlYamlDotNet ≥ 16.3
Hermodr.Schema.AsyncApiSaunter ≥ 0.13 · YamlDotNet ≥ 16.3 · ASP.NET Core shared framework
Hermodr.TestPublisherHermodr.Publisher

Core package​

Every application that publishes events needs the core publisher package:

dotnet add package Hermodr.Publisher

Channel packages​

Add one or more channel packages depending on the transports you want to use:

# Azure Service Bus
dotnet add package Hermodr.Publisher.AzureServiceBus

# RabbitMQ
dotnet add package Hermodr.Publisher.RabbitMq

# MassTransit
dotnet add package Hermodr.Publisher.MassTransit

# HTTP Webhooks
dotnet add package Hermodr.Publisher.Webhook

# Transactional Outbox
dotnet add package Hermodr.Publisher.Outbox

# Transactional Outbox + Entity Framework Core
dotnet add package Hermodr.Publisher.Outbox.EntityFramework

Subscriptions package​

To add in-process event subscription and dispatching:

dotnet add package Hermodr.Subscriptions

Annotation package​

If you want to annotate your data-transfer classes with event metadata:

dotnet add package Hermodr.Annotations

For AMQP-specific routing metadata (exchange name, routing key):

dotnet add package Hermodr.Amqp.Annotations

Schema packages​

# Core schema model, builder, JSON writer, and validator
dotnet add package Hermodr.Schema

# Export schemas as YAML
dotnet add package Hermodr.Schema.Yaml

# Export schemas as AsyncAPI 2.x documents (JSON or YAML)
dotnet add package Hermodr.Schema.AsyncApi

Test package​

dotnet add package Hermodr.TestPublisher

Pre-release builds​

Pre-release packages are published to GitHub Packages. To consume them, add the Deveel GitHub Packages feed to your NuGet sources:

<!-- nuget.config -->
<configuration>
<packageSources>
<add key="deveel-github" value="https://nuget.pkg.github.com/deveel/index.json" />
</packageSources>
</configuration>

You will also need a GitHub Personal Access Token (PAT) with read:packages scope and add it as a credential for the feed.

What's next?​

→ Quick Start — publish your first event in minutes.