Plugfy.Core.Data.Communication.SharedMemory
1.0.8
dotnet add package Plugfy.Core.Data.Communication.SharedMemory --version 1.0.8
NuGet\Install-Package Plugfy.Core.Data.Communication.SharedMemory -Version 1.0.8
<PackageReference Include="Plugfy.Core.Data.Communication.SharedMemory" Version="1.0.8" />
<PackageVersion Include="Plugfy.Core.Data.Communication.SharedMemory" Version="1.0.8" />
<PackageReference Include="Plugfy.Core.Data.Communication.SharedMemory" />
paket add Plugfy.Core.Data.Communication.SharedMemory --version 1.0.8
#r "nuget: Plugfy.Core.Data.Communication.SharedMemory, 1.0.8"
#:package Plugfy.Core.Data.Communication.SharedMemory@1.0.8
#addin nuget:?package=Plugfy.Core.Data.Communication.SharedMemory&version=1.0.8
#tool nuget:?package=Plugfy.Core.Data.Communication.SharedMemory&version=1.0.8
Shared Memory Communication Extension
Overview
The Shared Memory Communication Extension is a part of the larger framework designed to facilitate inter-process communication via shared memory using memory mapped files. This extension provides a robust and efficient method for data exchange between different processes, leveraging the high-speed access of shared memory along with synchronization mechanisms to ensure data integrity and consistency.
Features
- High-Performance Inter-Process Communication: Utilizes shared memory for rapid data transfer between processes.
- Synchronization and Signaling: Implements mutexes and event wait handles to manage access control and notify processes of available data.
- Flexible Data Handling: Supports dynamic JSON serialized data structures for communication.
- Easy Integration: Seamlessly integrates with existing systems that support .NET, offering a straightforward setup process.
- Robust Error Handling: Includes comprehensive error management to ensure stable operation even in edge cases.
Installation
To integrate the Shared Memory Communication Extension into your project, follow these steps:
- Clone the repository to your local machine.
- Include the project in your solution or reference the built assembly directly.
- Ensure your project targets .NET Framework 8 or higher.
Usage
To use the Shared Memory Communication Extension, initialize an instance of the SharedMemory
class and configure it with a unique memory map name and optional buffer size. Start the communication by calling InitializeAsync
and StartListeningAsync
to begin data transmission.
Example:
var sharedMemory = new SharedMemory();
await sharedMemory.InitializeAsync(new { MapName = "ExampleMap", MapSize = 4096 });
await sharedMemory.StartListeningAsync();
License
This project is licensed under the GNU General Public License v3.0. See GNU GPL v3.0 for details.
Contributing
We welcome contributions! To contribute:
- Fork the repository.
- Create a new feature branch (
git checkout -b feature-new
). - Commit changes (
git commit -m "Added new feature"
). - Push to the branch (
git push origin feature-new
). - Submit a Pull Request.
For major changes, open an issue first to discuss the proposed changes.
Contact
For inquiries, feature requests, or issues, please open a GitHub issue or contact the Plugfy Foundation.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
-
net8.0
- Newtonsoft.Json (>= 13.0.3)
- Plugfy.Core.Commons.Communication (>= 1.0.6)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.