Skip to content

Introduction

The easiest way to think about Nalix is:

  • Nalix.Network runs the server side
  • Nalix.SDK runs the client side
  • both sides share packet contracts and metadata through Nalix.Common and Nalix.Shared

What stays shared

Across the stack, Nalix tries to keep these pieces aligned:

  • packet types and opcodes
  • middleware-related metadata
  • configuration-driven runtime options
  • logging and service registration patterns

That is why a typical setup registers shared services early:

Minimal example

InstanceManager.Instance.Register<ILogger>(logger);
InstanceManager.Instance.Register<IPacketRegistry>(packetRegistry);

Server mental model

A server usually looks like this:

  1. load NetworkSocketOptions, DispatchOptions, and related options
  2. register ILogger and IPacketRegistry
  3. build PacketDispatchChannel
  4. create a Protocol
  5. start TcpListenerBase or UdpListenerBase

Client mental model

A client usually looks like this:

  1. load or create TransportOptions
  2. create TcpSession or IoTTcpSession
  3. connect
  4. perform handshake or control flow if needed
  5. use RequestAsync, PingAsync, or direct send helpers

Version note

Latest verified stable package version on 2026-03-24:

  • Nalix.Network: 11.8.0
  • Nalix.SDK: 11.8.0