Nalix.Hosting¶
Nalix.Hosting provides Microsoft-style host and builder APIs for Nalix servers. It wires packet registry discovery, packet dispatch, configuration application, and transport lifecycle into a familiar builder/build/run workflow.
Source Mapping¶
src/Nalix.Hosting/NetworkApplication.cssrc/Nalix.Hosting/NetworkApplicationBuilder.cssrc/Nalix.Hosting/INetworkApplicationBuilder.cssrc/Nalix.Hosting/Bootstrap.cssrc/Nalix.Hosting/DefaultProtocol.cs
Hosting Flow¶
flowchart LR
subgraph Config ["Configuration"]
A["CreateBuilder()"] --> B["Register Services"]
B --> C["Scan Packets"]
C --> D["Bind Protocols"]
end
subgraph Runtime ["Execution"]
D --> E["Build & Activate"]
E --> F["Bootstrap"]
F --> G["Dispatcher"]
G --> H["Listeners"]
end
What it gives you¶
NetworkApplication.CreateBuilder()- Fluent
INetworkApplicationBuilderconfiguration - Automatic packet registry creation from assembly scanning
- Application lifecycle management through
ActivateAsync,DeactivateAsync, andRunAsync - Optimized server defaults through
Bootstrap(Module Initializer) - Integrated dependency injection via
InstanceManager
Core APIs¶
NetworkApplication¶
NetworkApplication is the runnable entry point. It manages the coordinated startup and shutdown of all server components.
INetworkApplicationBuilder¶
The builder exposes fluent methods for configuring the server:
ConfigureLogging(...)ConfigureConnectionHub(...)ConfigureBufferPoolManager(...)ConfigureObjectPoolManager(...)ConfigureCertificate(...)ConfigurePacketRegistry(...)ConfigureDispatch(...)Configure<TOptions>(...)ScanPackets<TMarker>()AddPacketNamespace(...)ScanHandlers<TMarker>()AddHandler<THandler>()AddMetadataProvider<TProvider>()BindTcp<TProtocol>().Bind()BindTcp<TProtocol>().OnPort(port).Bind()BindUdp<TProtocol>().Bind()BindUdp<TProtocol>().WithAuthentication(authen).Bind()
Bootstrap¶
The Bootstrap static class provides global initialization, including server-side configuration defaults, optional ThreadPool tuning, diagnostic subscription, and high-precision timers on Windows.
Minimal example¶
using Microsoft.Extensions.Logging;
using Nalix.Hosting;
using Nalix.Network.Options;
var app = NetworkApplication.CreateBuilder()
.Configure<NetworkSocketOptions>(options =>
{
options.Port = 57206;
})
.ScanPackets<MyPacket>()
.ScanHandlers<MyHandlers>()
.BindTcp<MyProtocol>().Bind()
.Build();
await app.RunAsync();
Related packages¶
- Nalix.Network: Transport and listeners.
- Nalix.Runtime: Dispatcher and middleware.
- Nalix.Abstractions: Shared primitives and contracts.