NexusMods.SingleProcess
0.8.0
dotnet add package NexusMods.SingleProcess --version 0.8.0
NuGet\Install-Package NexusMods.SingleProcess -Version 0.8.0
<PackageReference Include="NexusMods.SingleProcess" Version="0.8.0" />
paket add NexusMods.SingleProcess --version 0.8.0
#r "nuget: NexusMods.SingleProcess, 0.8.0"
// Install NexusMods.SingleProcess as a Cake Addin #addin nuget:?package=NexusMods.SingleProcess&version=0.8.0 // Install NexusMods.SingleProcess as a Cake Tool #tool nuget:?package=NexusMods.SingleProcess&version=0.8.0
NexusMods.App.SingleProcess
About
This library allows an application to be run as a single process, with multiple windows (and fully multithreaded) while still allowing rich communication between the main process and the app's CLI.
Motivation
It became clear that the Nexus Mods App would benefit significantly from being a single process application, issues such as synchronisation of data between processes and message lag between windows were becoming a problem. This library attempts to solve these issues by providing a framework for a single process application, where the UI is run through a "Main" process and communication with the CLI is done through child processes connecting over IPC.
Non-goals of this library include multiple implementations of the IPC system (everything uses localhost tcp for simplicity), and multiple CLI rendering/interaction techs. In this app the CLI is abstracted away and a default rendering implementation is provided for Spectre. This is where the "opinionated" part of the library comes in, it is designed to be used for apps structured in a similar way to the Nexus Mods App.
Docs
More detailed documentation can be found here
License
See LICENSE.md
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. |
-
net8.0
- MemoryPack.Streaming (>= 1.10.0)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.0)
- NexusMods.Paths (>= 0.1.8)
- NexusMods.ProxyConsole (>= 0.8.0)
- System.CommandLine (>= 2.0.0-beta4.22272.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.