Cloudtoid.Interprocess
3.0.0-alpha.205
See the version list below for details.
dotnet add package Cloudtoid.Interprocess --version 3.0.0-alpha.205
NuGet\Install-Package Cloudtoid.Interprocess -Version 3.0.0-alpha.205
<PackageReference Include="Cloudtoid.Interprocess" Version="3.0.0-alpha.205" />
<PackageVersion Include="Cloudtoid.Interprocess" Version="3.0.0-alpha.205" />
<PackageReference Include="Cloudtoid.Interprocess" />
paket add Cloudtoid.Interprocess --version 3.0.0-alpha.205
#r "nuget: Cloudtoid.Interprocess, 3.0.0-alpha.205"
#:package Cloudtoid.Interprocess@3.0.0-alpha.205
#addin nuget:?package=Cloudtoid.Interprocess&version=3.0.0-alpha.205&prerelease
#tool nuget:?package=Cloudtoid.Interprocess&version=3.0.0-alpha.205&prerelease
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 --prerelease
Upgrading to 3.0 alpha
Version 3 is an alpha prerelease. APIs and the shared-memory protocol may change between alpha releases. Drain the queue, stop all participants, and recreate it when upgrading between alpha versions.
Version 3 changes the shared-memory protocol to prevent publisher reservations from overwriting unread messages after offset wrap. Drain the old queue and upgrade all publishers and subscribers together. V2 and v3 use separate resources even with the same queue name; queued messages are not migrated.
The MMF stays circular and fixed in size. Logical positions never wrap: after approximately 9.22 exabytes
of reserved bytes (including headers and padding), TryEnqueue throws OverflowException before changing
the queue. Drain accepted messages and move all participants to 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.
For dependency injection, register the queue services with services.AddInterprocessQueue() and resolve IQueueFactory.
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 | 53 | 9/18/2026 |
| 3.1.1 | 84 | 9/14/2026 |
| 3.0.211 | 83 | 9/14/2026 |
| 3.0.210 | 78 | 9/14/2026 |
| 3.0.209 | 86 | 9/14/2026 |
| 3.0.208 | 82 | 9/14/2026 |
| 3.0.0-alpha.207 | 53 | 9/14/2026 |
| 3.0.0-alpha.206 | 43 | 9/13/2026 |
| 3.0.0-alpha.205 | 48 | 9/13/2026 |
| 2.1.204 | 80 | 9/13/2026 |
| 2.1.203 | 79 | 9/13/2026 |
| 2.1.202 | 86 | 9/13/2026 |
| 2.1.201 | 86 | 9/13/2026 |
| 2.1.200 | 89 | 9/13/2026 |
| 2.1.199 | 90 | 9/13/2026 |
| 2.0.198 | 86 | 9/13/2026 |
| 2.0.197 | 80 | 9/13/2026 |
| 2.0.196 | 86 | 9/13/2026 |
| 2.0.195 | 84 | 9/12/2026 |
| 2.0.194 | 80 | 9/12/2026 |