Cloudtoid.Interprocess
3.1.1
See the version list below for details.
dotnet add package Cloudtoid.Interprocess --version 3.1.1
NuGet\Install-Package Cloudtoid.Interprocess -Version 3.1.1
<PackageReference Include="Cloudtoid.Interprocess" Version="3.1.1" />
<PackageVersion Include="Cloudtoid.Interprocess" Version="3.1.1" />
<PackageReference Include="Cloudtoid.Interprocess" />
paket add Cloudtoid.Interprocess --version 3.1.1
#r "nuget: Cloudtoid.Interprocess, 3.1.1"
#:package Cloudtoid.Interprocess@3.1.1
#addin nuget:?package=Cloudtoid.Interprocess&version=3.1.1
#tool nuget:?package=Cloudtoid.Interprocess&version=3.1.1
Cloudtoid.Interprocess
Exchange byte messages between processes on the same machine using a shared-memory queue. Multiple publishers and subscribers can connect to the same queue on Windows, Linux, or macOS.
Install
Requires .NET 10 or later and a 64-bit process.
dotnet add package Cloudtoid.Interprocess
Faster with v3
Version 3 coalesces notifications to reduce operating-system calls and speed up message delivery. See the version comparison and benchmarks.
Version 3 uses a new shared-memory format. Drain the queue, stop all participants, and upgrade them together using a fresh queue.
Example
using Cloudtoid.Interprocess;
var factory = new QueueFactory();
var options = new QueueOptions("example-queue", capacity: 1024 * 1024);
using var publisher = factory.CreatePublisher(options);
using var subscriber = factory.CreateSubscriber(options);
byte[] payload = [1, 2, 3];
byte[] buffer = new byte[256];
if (publisher.TryEnqueue(payload) &&
subscriber.TryDequeue(buffer, out var message))
{
Console.WriteLine($"Received {message.Length} bytes");
}
For separate processes, create the publisher and subscriber in their respective programs using the same queue name, storage path, and capacity. The example uses the default temporary directory. Handle unsuccessful enqueue/dequeue attempts according to your application's retry and cancellation needs.
Each queue supports up to 2,048 connected publisher objects. Its shared publisher table uses 256 KiB in addition to the message capacity and header/alignment storage. Dispose participants when finished; the queue remains available while any participant is connected.
For dependency injection, register the queue services with services.AddInterprocessQueue() and resolve IQueueFactory.
Limits
Queue names must be nonempty and contain no slash or NUL. Windows also rejects backslashes; Unix permits them for compatibility. The maximum is 24 UTF-8 bytes on macOS and 245 on Linux; use at most 24 bytes for portable names.
Queue lifetime
The queue is transient IPC storage. Once all publishers and subscribers are gone, unread messages are lost; reopening the same name creates a fresh, empty queue. Keep a subscriber connected before a short-lived publisher exits. Recovery after a process exits can discard queued messages, including completed messages behind an unfinished reservation. Paused live operations are not reclaimed merely because a timeout passes. Destination buffers must be large enough to avoid truncating a consumed message.
Publisher and subscriber samples · Documentation · Report an issue · MIT license
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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
- Cloudtoid.Framework (>= 1.0.123)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.12)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Cloudtoid.Interprocess:
| Package | Downloads |
|---|---|
|
Ipc.Connect
A cross-platform shared memory Client/Server Implementation |
|
|
IPCPipeline
Inter-process bi-directional communication pipeline (IPC) or (IPBDC) that can both write and read data at the same time. This uses cloudtoid/interprocess as its low-level backend API. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.1.2 | 66 | 9/18/2026 |
| 3.1.1 | 85 | 9/14/2026 |
| 3.0.211 | 86 | 9/14/2026 |
| 3.0.210 | 79 | 9/14/2026 |
| 3.0.209 | 86 | 9/14/2026 |
| 3.0.208 | 83 | 9/14/2026 |
| 3.0.0-alpha.207 | 54 | 9/14/2026 |
| 3.0.0-alpha.206 | 44 | 9/13/2026 |
| 3.0.0-alpha.205 | 49 | 9/13/2026 |
| 2.1.204 | 80 | 9/13/2026 |
| 2.1.203 | 80 | 9/13/2026 |
| 2.1.202 | 87 | 9/13/2026 |
| 2.1.201 | 87 | 9/13/2026 |
| 2.1.200 | 91 | 9/13/2026 |
| 2.1.199 | 91 | 9/13/2026 |
| 2.0.198 | 87 | 9/13/2026 |
| 2.0.197 | 82 | 9/13/2026 |
| 2.0.196 | 87 | 9/13/2026 |
| 2.0.195 | 86 | 9/12/2026 |
| 2.0.194 | 81 | 9/12/2026 |