Pulse.Mqtt.Client 2.29.0

dotnet add package Pulse.Mqtt.Client --version 2.29.0
                    
NuGet\Install-Package Pulse.Mqtt.Client -Version 2.29.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Pulse.Mqtt.Client" Version="2.29.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Pulse.Mqtt.Client" Version="2.29.0" />
                    
Directory.Packages.props
<PackageReference Include="Pulse.Mqtt.Client" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Pulse.Mqtt.Client --version 2.29.0
                    
#r "nuget: Pulse.Mqtt.Client, 2.29.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Pulse.Mqtt.Client@2.29.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Pulse.Mqtt.Client&version=2.29.0
                    
Install as a Cake Addin
#tool nuget:?package=Pulse.Mqtt.Client&version=2.29.0
                    
Install as a Cake Tool

Pulse.Mqtt.Client

The high-level resilient MQTT client for .NET. It wraps the core protocol layer with reconnect supervision, re-subscription, bounded offline publishing, route templates, typed payloads, request/reply, and route-local delivery modes.

Install

dotnet add package Pulse.Mqtt.Client

Add optional packages for hosting, serializers, durable storage, alternate transports, or analyzers as needed.

Connect

var transport = new TcpTransportFactory(new TcpTransportOptions
{
    Host = "broker.example.com",
    Port = 8883,
    UseTls = true,
});

await using var client = new ResilientMqttClient(
    transport,
    new ResilientMqttClientOptions
    {
        Connect = new MqttConnectPacket { ClientId = "service-1" },
    });

await client.ConnectAsync(cancellationToken);
await client.WaitUntilConnectedAsync(TimeSpan.FromSeconds(10), cancellationToken);

Route messages

SubscribeAsync controls broker delivery. Routes control local dispatch.

var template = MqttRouteTemplate.Parse("orders/{id}");

await client.SubscribeAsync(
    [template.ToTopicFilter(MqttQualityOfService.AtLeastOnce)],
    cancellationToken);

using var route = client.RegisterRoute(template, async (message, values, ct) =>
{
    var orderId = values["id"];
    await ProcessOrderAsync(orderId, message.Payload, ct);
});

Manual acknowledgement per route

Automatic acknowledgement is the default. Use manual acknowledgement only on routes that must finish local work before the broker is acknowledged.

await using var route = await client.Route("orders/{id}")
    .AtLeastOnce()
    .ManualAcknowledgement()
    .HandleAsync(async (message, ct) =>
    {
        await PersistAsync(message.Message, ct);
        await message.AcknowledgeAsync(ct);
    }, cancellationToken);

Typed messaging

Configure one serializer, then publish and consume typed payloads.

await client.PublishAsync(
    "telemetry/device-7",
    new Reading("device-7", 21.5),
    MqttQualityOfService.AtLeastOnce,
    cancellationToken);

Serializer packages:

  • Pulse.Mqtt.Serialization.Json
  • Pulse.Mqtt.Serialization.MessagePack
  • Pulse.Mqtt.Serialization.Protobuf

Full docs: https://araxis.github.io/pulse-mqtt/guide/quick-start

Product 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.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (5)

Showing the top 5 NuGet packages that depend on Pulse.Mqtt.Client:

Package Downloads
Pulse.Mqtt.DependencyInjection

Dependency-injection integration for the Pulse MQTT client: AddPulseMqttClient, named clients, options binding, hosted lifecycle, and health checks.

Pulse.Mqtt.Testing

In-memory loopback transport and test server for testing Pulse clients without a broker.

Pulse.Mqtt.Dataflow

Dataflow source blocks for Pulse MQTT client messages, routes, acknowledged routes, and connection state transitions.

Pulse.Mqtt.Endpoints

Minimal-API-style MapMqtt endpoints for the Pulse MQTT client: route templates with typed constraints, per-message service scopes, and subscribe-on-map.

FluxFlow.Components.Mqtt.PulseMqtt

Concrete MQTT transport adapter for FluxFlow. Maps resolved client configuration, exact message bytes, subscriptions, and broker acknowledgements while the provider-neutral MQTT core owns client policy and workflow behavior.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.29.0 352 7/9/2026
2.29.0-preview.219 78 7/9/2026
2.29.0-preview.218 84 7/9/2026
2.29.0-preview.217 76 7/6/2026
2.28.0 172 7/6/2026
2.28.0-preview.215 73 7/6/2026
2.28.0-preview.214 71 7/6/2026
2.28.0-preview.213 83 7/6/2026
2.28.0-preview.212 78 7/6/2026
2.28.0-preview.211 73 7/4/2026
2.28.0-preview.210 82 7/4/2026
2.28.0-preview.209 73 7/4/2026
2.28.0-preview.208 96 7/4/2026
2.27.0 181 7/4/2026
2.27.0-preview.206 77 7/4/2026
2.27.0-preview.205 83 7/4/2026
2.27.0-preview.204 91 7/3/2026
2.27.0-preview.203 75 7/3/2026
2.27.0-preview.202 76 7/3/2026
2.27.0-preview.201 75 7/3/2026
Loading failed