The SharedMemory class library provides a set of C# classes that utilise a memory-mapped file for fast low-level inter-process communication (IPC) - specifically for sharing data between processes.
* a lock-free FIFO circular buffer
* a simple fixed-size generic shared memory array class
* an implementation of a shared memory buffer for read/write.
* support for memory-mapped files in .NET 3.5 and .NET 4
* fast generic structure reading/writing
See the version list below for details.
Install-Package SharedMemory -Version 2.0.16
dotnet add package SharedMemory --version 2.0.16
<PackageReference Include="SharedMemory" Version="2.0.16" />
paket add SharedMemory --version 2.0.16
#r "nuget: SharedMemory, 2.0.16"
// Install SharedMemory as a Cake Addin #addin nuget:?package=SharedMemory&version=2.0.16 // Install SharedMemory as a Cake Tool #tool nuget:?package=SharedMemory&version=2.0.16
1. Prevent possible deadlock situation with incorrect Acquire and Release of read/write locks in BufferWithLocks (affects BufferReadWrite and SharedArray).
1. Breaking change: Array, Buffer, and Header classes renamed to SharedArray, SharedBuffer, and SharedHeader
2. Important breaking change! CircularBuffer Read/Write operations now allow an index to be specified. Check existing code as it may be passing a timeout value into index!
3. Circular buffer keeps track of amount written to a node and uses this during read operations
4. SharedArray implements IList
5. ArraySlice implementation added
6. FastStructure now performs type compatibility check within static constructor
7. A couple of bug fixes
8. A number of unit test fixes, minor corrections to comments and changes to make parameter names consistent
1. Implemented basic memory-mapped file support for .NET 3.5
2. Added generic FastStructure class for fast reading/writing of structures (using emitted IL with DynamicMethod)
3. Fixed offset bug in CircularBuffer.Read/Write(IntPtr, int, int)
1. Improved usage consistency by changing Buffer.Open to protected (breaking change)
2. BufferReadWrite now opens buffer in constructor
3. CircularBuffer now opens in constructor
4. Added read/write single structure overloads to CircularBuffer
5. Added XML documentation to NuGet package
This package has no dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on SharedMemory:
This is the Core side of the AppConfig package. It should be present in Client and Server package.
Hosting environment for dynamic client side development based on DNX
GitHub repositories (2)
Showing the top 2 popular GitHub repositories that depend on SharedMemory:
Custom launcher for Final Fantasy XIV
Capture of the local Among Us executable state