Omq.Net
0.2.1
dotnet add package Omq.Net --version 0.2.1
NuGet\Install-Package Omq.Net -Version 0.2.1
<PackageReference Include="Omq.Net" Version="0.2.1" />
<PackageVersion Include="Omq.Net" Version="0.2.1" />
<PackageReference Include="Omq.Net" />
paket add Omq.Net --version 0.2.1
#r "nuget: Omq.Net, 0.2.1"
#:package Omq.Net@0.2.1
#addin nuget:?package=Omq.Net&version=0.2.1
#tool nuget:?package=Omq.Net&version=0.2.1
OMQ.Net
Fast .NET binding for OMQ, backed by the omq-libzmq C ABI. Managed handles
own native lifetimes; socket calls are serialized and message bytes are copied
at the boundary.
<p align="center"> <img src="https://raw.githubusercontent.com/paddor/omq.rs/main/bindings/dotnet/doc/charts/bindings.svg" alt="OMQ.Net performance" width="850"> </p>
2-process loopback TCP comparison against NetMQ. Throughput covers 16 B–32 KiB;
REQ/REP p50 latency covers 16 B–4 KiB. See DEVELOPMENT.md
for benchmark and regeneration commands.
Install
dotnet add package Omq.Net
The package targets net8.0 and net10.0, and includes RID-specific native
assets for supported platforms.
API
using Omq;
using var context = new Context();
using var pull = context.CreateSocket(SocketType.Pull, new SocketOptions { Linger = 0 });
using var push = context.CreateSocket(SocketType.Push, new SocketOptions { Linger = 0 });
string endpoint = pull.Bind("tcp://127.0.0.1:5555");
push.Connect(endpoint);
push.Send(Message.Text("hello"));
Console.WriteLine(pull.Receive().ToString());
The public API includes all OMQ socket types, multipart messages, options, polling, monitors, proxies, CURVE key helpers, synchronous operations, and cancellation-aware async operations. Generated XML documentation provides IntelliSense summaries for the public API.
OMQ.Net follows OMQ/libzmq socket semantics; it is not a NetMQ compatibility layer.
PLAIN servers require a fixed credential allowlist through
socket.ConfigurePlainServer([new("alice", "secret"), new("bob", "hunter2")]).
The two-string overload configures one pair. Clients use ConfigurePlainClient.
PLAIN authenticates but does not encrypt traffic.
Development
Architecture: doc/architecture.md.
Build, test, benchmark, and packaging instructions: DEVELOPMENT.md.
| 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. 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. |
-
net10.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.