SharedMemory 2.0.16

.NET Framework 3.5
There is a newer version of this package available.
See the version list below for details.
dotnet add package SharedMemory --version 2.0.16
NuGet\Install-Package SharedMemory -Version 2.0.16
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SharedMemory" Version="2.0.16" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SharedMemory --version 2.0.16
#r "nuget: SharedMemory, 2.0.16"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// 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

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 and .NET 4
* fast generic structure reading/writing

Usage: https://sharedmemory.codeplex.com/documentation

Product Versions
.NET Framework net35 net40 net403 net45 net451 net452 net46 net461 net462 net463 net47 net471 net472 net48 net481
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on SharedMemory:

Package Downloads
Nine.Hosting

Hosting environment for dynamic client side development based on DNX

GitHub repositories (3)

Showing the top 3 popular GitHub repositories that depend on SharedMemory:

Repository Stars
goatcorp/FFXIVQuickLauncher
Custom launcher for FFXIV
automuteus/amonguscapture
Capture of the local Among Us executable state
sidristij/dotnetex
Gets size of .Net Framework objects, can change type of object to incompatible and can alloc .Net objects at unmanaged memory area
Version Downloads Last updated
2.3.2 14,799 2/3/2022
2.2.3 35,016 4/15/2020
2.1.1 34,850 12/12/2018
2.1.0 3,130 5/24/2018
2.0.16 20,565 9/29/2016
2.0.15 3,667 7/25/2016
1.1.4 3,303 12/4/2014
1.0.1 2,793 11/2/2014

2.0.16
1. Prevent possible deadlock situation with incorrect Acquire and Release of read/write locks in BufferWithLocks (affects BufferReadWrite and SharedArray).

2.0.15
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.1.4
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.0.1:
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