Packages Overview¶
Nalix is composed of focused packages that can be used together or independently. This page provides a map of all packages, their responsibilities, and guidance on choosing the right combination.
Safe defaults
Server: Start with Nalix.Hosting — it brings in the core networking and runtime.
Client: Start with Nalix.SDK — it includes Nalix.Codec and Nalix.Environment transitively.
Package Map¶
| Package | Purpose | Key Types |
|---|---|---|
| Nalix.Abstractions | Base contracts, packet attributes, and core networking abstractions | IPacket, IConnection, PacketOpcodeAttribute, PacketControllerAttribute, NetworkTransport |
| Nalix.Environment | Configuration, environment IO, random generation, and monotonic time | ConfigurationManager, Directories, IRandomProvider, Clock |
| Nalix.Codec | Serialization, buffer leasing, transforms, and compression | BufferLease, LiteSerializer, LZ4Codec, FrameCipher, FrameCompression |
| Nalix.Framework | Shared runtime services, instance registration, scheduling, and identifiers | InstanceManager, TaskManager, Snowflake, TimingScope |
| Nalix.Runtime | Packet dispatch, built-in protection middleware, and throttling primitives | PacketDispatchChannel, ConcurrencyGate, PolicyRateLimiter, TokenBucketLimiter, PermissionMiddleware |
| Nalix.Network | TCP/UDP listeners, connections, protocol bridge, and session store | TcpListenerBase, UdpListenerBase, Protocol, ConnectionHub, SocketConnection |
| Nalix.Hosting | Fluent server bootstrap, packet discovery, and application lifecycle | NetworkApplication, INetworkApplicationBuilder, Bootstrap |
| Nalix.SDK | Client transport sessions, request/response correlation, and session flows | TransportSession, TcpSession, UdpSession, TransportOptions, RequestOptions |
| Nalix.Logging | Structured logging with batched async sinks | NLogix, NLogixOptions, INLogixTarget |
Dependency Graph¶
flowchart TD
Hosting["Nalix.Hosting"] --> Network["Nalix.Network"]
Hosting --> Runtime["Nalix.Runtime"]
Hosting --> Framework["Nalix.Framework"]
Hosting --> Codec["Nalix.Codec"]
Hosting --> Abstractions["Nalix.Abstractions"]
Network --> Codec
Network --> Framework
Network --> Abstractions
Runtime --> Codec
Runtime --> Framework
Runtime --> Abstractions
SDK["Nalix.SDK"] --> Codec
SDK --> Environment["Nalix.Environment"]
SDK --> Abstractions
Framework --> Environment
Framework --> Abstractions
Codec --> Environment
Codec --> Abstractions
Environment --> Abstractions
Logging --> Framework
Logging --> Abstractions
Minimum Package Sets¶
| Scenario | Packages |
|---|---|
| Hosted server (recommended) | Nalix.Hosting, Nalix.Logging |
| Manual server | Nalix.Network, Nalix.Runtime, Nalix.Framework, Nalix.Logging |
| Client only | Nalix.SDK |
| Shared contracts | Nalix.Abstractions, Nalix.Codec |