NuGet Packages
Prefer Templates For a New Project
Do not pick packages by hand the first time:
dotnet new install Zeus.Templates
dotnet new zeus-console -n ZeusCheck
dotnet new zeus-winforms -n MyPanel
dotnet new zeus-wpf -n MyPanel.Wpf
dotnet new zeus-modbus -n MyOven
Templates wire the target framework, package references, host, bindings, or zeus.json. Add packages below only when you already have a project.
Copy the Command for Your Scenario
Console, Windows Service, or Background Acquisition
dotnet add package Zeus.Communications
Zeus.Communications brings the host and core abstractions, including ZeusHost.Create, virtual channels, serial ports, TCP, and UDP. Add Zeus.Configuration when you use zeus.json.
WinForms Host App
dotnet add package Zeus.Communications
dotnet add package Zeus.Presentation.WinForms
<TargetFramework>net8.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
WPF Host App
dotnet add package Zeus.Communications
dotnet add package Zeus.Presentation.Wpf
<TargetFramework>net8.0-windows</TargetFramework>
<UseWPF>true</UseWPF>
Install a protocol package after the communication and UI packages.
Protocols
dotnet add package Zeus.Protocols.Modbus
dotnet add package Zeus.Protocols.Mc
dotnet add package Zeus.Protocols.S7
dotnet add package Zeus.Protocols.Fins
dotnet add package Zeus.Protocols.HostLink
dotnet add package Zeus.Protocols.Mewtocol
dotnet add package Zeus.Protocols.EtherNetIp
dotnet add package Zeus.Protocols.Dlt645
dotnet add package Zeus.Protocols.Iec104
dotnet add package Zeus.Protocols.Mqtt
dotnet add package Zeus.Protocols.Snmp
dotnet add package Zeus.Protocols.Framing
Install only the protocol packages your app needs. If JSON declares a device type, install that protocol or load fails with dotnet add package Zeus.Protocols.Xxx.
JSON Configuration
dotnet add package Zeus.Configuration
dotnet add package Zeus.Protocols.Modbus
Zeus.Configuration does not pull protocol implementations.
Package Map
| Package | Purpose |
|---|---|
| Zeus.Templates | dotnet new zeus-console / zeus-winforms / zeus-wpf / zeus-modbus |
| Zeus.Abstractions | Contracts; usually pulled transitively |
| Zeus.Runtime | Runtime core. Assembly name is Zeus.Core |
| Zeus.Hosting | Host lifecycle and acquisition loop |
| Zeus.Communications | Serial, TCP, UDP, virtual channels |
| Zeus.Protocols.* | Protocol implementations |
| Zeus.Configuration | Load zeus.json |
| Zeus.Presentation.WinForms | WinForms AttachZeus, BindText, BindState |
| Zeus.Presentation.Wpf | WPF AttachZeus, WpfUiDispatcher, MVVM binding sources |
Minimal Code After Install
using System.Text;
using Zeus;
await using var app = ZeusHost.Create(builder =>
{
builder.AddVirtualChannel("meter");
});
var meter = app.Channels.Get("meter");
meter.DataReceived += (_, e) => Console.WriteLine(Encoding.UTF8.GetString(e.Data.Span));
await app.StartAsync();
await meter.WriteAsync(Encoding.UTF8.GetBytes("PING"));
If it prints PING, the package reference and basic runtime path are working.
Source: github.com/Mokode-dev/Zeus. License: MIT.