Silverback.Integration.MQTT.Testing
5.0.0-beta.3
Prefix Reserved
See the version list below for details.
dotnet add package Silverback.Integration.MQTT.Testing --version 5.0.0-beta.3
NuGet\Install-Package Silverback.Integration.MQTT.Testing -Version 5.0.0-beta.3
<PackageReference Include="Silverback.Integration.MQTT.Testing" Version="5.0.0-beta.3" />
<PackageVersion Include="Silverback.Integration.MQTT.Testing" Version="5.0.0-beta.3" />
<PackageReference Include="Silverback.Integration.MQTT.Testing" />
paket add Silverback.Integration.MQTT.Testing --version 5.0.0-beta.3
#r "nuget: Silverback.Integration.MQTT.Testing, 5.0.0-beta.3"
#addin nuget:?package=Silverback.Integration.MQTT.Testing&version=5.0.0-beta.3&prerelease
#tool nuget:?package=Silverback.Integration.MQTT.Testing&version=5.0.0-beta.3&prerelease
<img src="https://github.com/BEagle1984/silverback/raw/master/docs/images/logo.png" alt="Silverback">
Silverback is a powerful, elegant, and feature-rich message bus for .NET, designed to simplify asynchronous messaging, event-driven architectures, and microservice communication. With seamless integration for Apache Kafka and MQTT, it offers robust features for reliability, consistency, and scalability.
Whether you're building a small microservice, a large-scale enterprise solution, or anything in between, Silverback provides the tools to make messaging effortless and reliable.
Why Choose Silverback?
Silverback is designed for serious workloads, offering enterprise-grade capabilities with a rich feature set optimized for performance, resilience, and scalability.
Key Features
๐ Powerful Message Bus
A simple but powerful in-memory message bus enables seamless communication between components, featuring Rx.NET support for reactive programming.
๐ Seamless Message Broker Integration
Silverback makes it easy to integrate with Kafka and MQTT, providing a streamlined and developer-friendly API to build event-driven architectures with minimal setup and configuration.
๐ Kafka-Optimized Messaging
Unlike generic messaging libraries, Silverback is built specifically for Kafka, leveraging its unique capabilities for high-throughput, exactly-once semantics, and partitioned processing. While Silverback also supports MQTT, Kafka is a first-class citizen, and the framework is highly optimized to take full advantage of its power.
๐ค Transactional Outbox
Ensures message consistency by linking database transactions with messaging, preventing message loss and guaranteeing atomicity.
โ ๏ธ Advanced Error Handling
Define flexible strategies to retry, skip, or move messages based on custom policies, ensuring robustness in failure scenarios.
๐ฆ Batch Processing & Chunking
Enhances efficiency by processing messages in bulk or splitting large messages into smaller chunks, which are automatically reassembled on the receiving end.
โก Domain-Driven Design (DDD) Support
Automates domain event publishing when entities are persisted, ensuring seamless integration with message brokers for event-driven workflows.
โ
Exactly-Once Processing
Ensures each message is consumed and processed exactly once, preventing duplicate processing and maintaining data integrity.
๐ Distributed Tracing
Leverages System.Diagnostics for full visibility into message flow and distributed transaction tracking.
๐งช Testability
Provides in-memory mocks for Kafka and MQTT, along with powerful helpers for efficient unit testing.
โจ And much more!
Silverback is highly extensible, making it the go-to messaging framework for .NET developers who want to harness Kafkaโs full potential while maintaining flexibility for other brokers.
Discover more in the project's website.
Project Status
Continuous Build
Sonar Build
Quality Metrics
Activity
Setting Up Silverback
Silverback is designed as a modular framework, allowing you to include only the components you need. This guide walks you through selecting the right packages and configuring the basics to get started.
Adding the Required Packages
Core Packages
- Silverback.Core โ The essential package, including the message bus and fundamental messaging components.
- Silverback.Core.Model โ Enhances CQRS and event-driven architectures with improved semantics.
Message Broker Integration
If you need to integrate with a message broker, choose the appropriate package:
- Silverback.Integration.Kafka โ Adds Kafka support (implicitly includes Silverback.Core).
- Silverback.Integration.Mqtt โ Adds MQTT support (implicitly includes Silverback.Core).
Additional Features
- Silverback.Core.Rx โ Enables Rx.NET integration, allowing observables from the message bus stream.
- Silverback.Newtonsoft โ Supports serialization using Newtonsoft.Json instead of System.Text.Json.
- Silverback.Kafka.SchemaRegistry โ Provides integration with Schema Registry for Protobuf, Avro, or JSON serialization with schema support.
Storage Options
Certain Silverback features rely on a storage mechanism. Choose the appropriate package based on your needs:
- Silverback.Storage.PostgreSql โ Optimized for PostgreSQL, leveraging advisory locks.
- Silverback.Storage.Sqlite โ A lightweight option, ideal for testing.
- Silverback.Storage.EntityFramework โ Works with Entity Framework, supporting all EF-compatible relational databases.
- Silverback.Storage.Memory โ An in-memory storage option, useful for testing.
Testing Support
For unit testing message-driven applications, you can use in-memory broker mocks:
- Silverback.Integration.Kafka.Testing โ Provides an in-memory Kafka mock, simulating partitioning, offsets management, and other broker behaviors.
- Silverback.Integration.Mqtt.Testing โ Provides an in-memory MQTT mock to test MQTT-related logic.
Usage
Have a look at the project's website for usage details, API documentation and samples.
Contributing
You are encouraged to contribute to Silverback! Please check out the how to contribute guide for guidelines about how to proceed.
License
This code is licensed under MIT license (see LICENSE file for details)
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
-
net8.0
- JetBrains.Annotations (>= 2024.3.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.Hosting.Abstractions (>= 8.0.1)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.2)
- MQTTnet (>= 5.0.1.1416)
- Silverback.Core (>= 5.0.0-beta.3)
- Silverback.Integration (>= 5.0.0-beta.3)
- Silverback.Integration.MQTT (>= 5.0.0-beta.3)
- Silverback.Integration.Testing (>= 5.0.0-beta.3)
- System.ComponentModel.Annotations (>= 5.0.0)
- System.Diagnostics.DiagnosticSource (>= 8.0.1)
- System.Linq.Async (>= 6.0.1)
- System.Text.Json (>= 8.0.5)
- System.Threading.Channels (>= 8.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
5.0.0-beta.5 | 20 | 4/27/2025 |
5.0.0-beta.4 | 40 | 4/26/2025 |
5.0.0-beta.3 | 116 | 4/21/2025 |
5.0.0-beta.2 | 117 | 4/21/2025 |
5.0.0-beta.1 | 126 | 3/9/2025 |
4.6.2 | 163 | 3/22/2025 |
4.6.1 | 107 | 2/6/2025 |
4.6.0 | 121 | 12/11/2024 |
4.6.0-beta.3 | 61 | 11/20/2024 |
4.6.0-beta.2 | 59 | 9/25/2024 |
4.6.0-beta.1 | 60 | 9/19/2024 |
4.5.2-beta.1 | 73 | 8/26/2024 |
4.5.1 | 137 | 7/16/2024 |
4.5.0 | 128 | 6/5/2024 |
4.5.0-beta.1 | 51 | 6/5/2024 |
4.4.2-beta.2 | 76 | 4/5/2024 |
4.4.2-beta.1 | 67 | 3/28/2024 |
4.4.1 | 266 | 12/3/2023 |
4.4.0 | 153 | 11/27/2023 |
4.4.0-beta.7 | 91 | 9/28/2023 |
4.4.0-beta.6 | 84 | 9/21/2023 |
4.4.0-beta.5 | 105 | 8/9/2023 |
4.4.0-beta.4 | 111 | 7/27/2023 |
4.4.0-beta.3 | 97 | 7/27/2023 |
4.4.0-beta.2 | 109 | 7/24/2023 |
4.4.0-beta.1 | 102 | 6/1/2023 |
4.3.2 | 239 | 5/19/2023 |
4.3.1 | 197 | 5/18/2023 |
4.3.0 | 225 | 5/9/2023 |
4.2.1 | 200 | 5/9/2023 |
4.2.0 | 251 | 4/17/2023 |
4.1.2 | 272 | 3/16/2023 |
4.1.1 | 303 | 2/26/2023 |
4.1.1-beta.1 | 106 | 2/21/2023 |
4.1.0 | 310 | 1/26/2023 |
4.0.1 | 328 | 1/18/2023 |
4.0.0 | 383 | 1/11/2023 |
4.0.0-beta.3 | 120 | 12/20/2022 |
4.0.0-beta.2 | 118 | 12/7/2022 |
4.0.0-beta.1 | 108 | 12/3/2022 |
3.8.0 | 511 | 9/20/2022 |
3.8.0-beta.1 | 142 | 8/9/2022 |
3.7.4-beta.1 | 148 | 7/27/2022 |
3.7.3 | 492 | 7/21/2022 |
3.7.2 | 482 | 7/1/2022 |
3.7.1 | 515 | 6/28/2022 |
3.7.0 | 486 | 5/18/2022 |
3.6.1 | 505 | 3/24/2022 |
3.6.1-beta.2 | 150 | 3/18/2022 |
3.6.1-beta.1 | 142 | 3/14/2022 |
3.6.0 | 496 | 3/4/2022 |
3.6.0-beta.6 | 144 | 2/21/2022 |
3.6.0-beta.5 | 152 | 1/19/2022 |
3.6.0-beta.4 | 158 | 1/17/2022 |
3.6.0-beta.3 | 159 | 1/10/2022 |
3.6.0-beta.2 | 153 | 1/3/2022 |
3.6.0-beta.1 | 153 | 1/3/2022 |
3.5.0 | 424 | 10/31/2021 |
3.4.1-beta.3 | 164 | 10/18/2021 |
3.4.1-beta.2 | 201 | 10/14/2021 |
3.4.1-beta.1 | 211 | 9/30/2021 |
3.4.0 | 384 | 9/27/2021 |
3.4.0-beta.3 | 210 | 9/27/2021 |
3.4.0-beta.2 | 164 | 9/14/2021 |
3.4.0-beta.1 | 174 | 9/3/2021 |
3.3.1 | 405 | 9/3/2021 |
3.3.0 | 423 | 8/29/2021 |
3.3.0-beta.3 | 166 | 8/24/2021 |
3.3.0-beta.2 | 198 | 7/21/2021 |
3.3.0-beta.1 | 196 | 7/21/2021 |
3.2.0 | 413 | 7/13/2021 |
3.2.0-beta.5 | 205 | 7/12/2021 |
3.2.0-beta.4 | 231 | 7/12/2021 |
3.2.0-beta.3 | 232 | 7/11/2021 |
3.2.0-beta.2 | 166 | 7/6/2021 |
3.2.0-beta.1 | 241 | 7/4/2021 |
3.1.1 | 426 | 6/28/2021 |
3.1.0 | 434 | 6/28/2021 |
3.1.0-beta.2 | 259 | 6/26/2021 |
3.1.0-beta.1 | 207 | 6/6/2021 |
3.0.1 | 470 | 4/4/2021 |
3.0.0 | 445 | 3/14/2021 |
3.0.0-beta.23 | 189 | 3/9/2021 |
3.0.0-beta.22 | 214 | 3/7/2021 |
3.0.0-beta.21 | 214 | 2/28/2021 |
3.0.0-beta.20 | 199 | 2/25/2021 |
3.0.0-beta.19 | 194 | 2/22/2021 |
3.0.0-beta.18 | 196 | 2/11/2021 |
3.0.0-beta.17 | 193 | 2/10/2021 |
3.0.0-beta.16 | 166 | 2/7/2021 |
3.0.0-beta.15 | 193 | 2/1/2021 |
3.0.0-beta.14 | 217 | 1/30/2021 |
3.0.0-beta.13 | 179 | 1/28/2021 |
3.0.0-beta.12 | 201 | 1/24/2021 |
3.0.0-beta.11 | 241 | 1/21/2021 |
3.0.0-beta.10 | 235 | 1/14/2021 |