SharedMemory 2.1.0

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.

It features:
* 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/4/4.5 and .NET Core 2.0
* fast generic structure reading/writing


There is a newer version of this package available.
See the version list below for details.
Install-Package SharedMemory -Version 2.1.0
dotnet add package SharedMemory --version 2.1.0
<PackageReference Include="SharedMemory" Version="2.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SharedMemory --version 2.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

1. Add .NET Core 2 target and update to use dotnet project files (VS2017) (#29)
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

  • .NETCoreApp 2.0

    • No dependencies.
  • .NETFramework 3.5

    • No dependencies.
  • .NETFramework 4.0

    • No dependencies.
  • .NETFramework 4.5

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on SharedMemory:

Package Downloads
Hosting environment for dynamic client side development based on DNX

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
2.2.3 1,119 4/15/2020
2.1.1 8,593 12/12/2018
2.1.0 1,366 5/24/2018
2.0.16 8,547 9/29/2016
2.0.15 3,128 7/25/2016
1.1.4 2,546 12/4/2014
1.0.1 2,141 11/2/2014