Voltar ao ranking

Lite reliable UDP library for Mono and .NET

udpreliable-packetsmonodot-netcross-platformunity-3dnetworkcsharpnetworking
Crescimento de estrelas
Estrelas
3.6k
Forks
534
Crescimento semanal
Issues
8
1k2k3k
fev. de 2016jul. de 2019jan. de 2023jul. de 2026
README

LiteNetLib 2

Lite reliable UDP library for .NET Standard 2.1 (Mono, .NET)

Made in Ukraine

HighLevel API Part: LiteEntitySystem

Matrix chat: Matrix

Discord chat: Discord

OLD BRANCH (and examples) for 1.x

Little Game Example on Unity

Documentation

Build

NuGet NuGet NuGet NuGet

Release builds GitHub (pre-)release

DLL build from master

( Warning! Master branch can be unstable! )

Features

  • Lightweight
    • Small CPU and RAM usage
    • Small packet size overhead ( 1 byte for unreliable, 4 bytes for reliable packets )
  • Simple connection handling
  • Peer to peer connections
  • Helper classes for sending and reading messages
  • Multiple data channels
  • Different send mechanics
    • Reliable with order
    • Reliable without order
    • Reliable sequenced (reliable only last packet)
    • Ordered but unreliable with duplication prevention
    • Simple UDP packets without order and reliability
  • Fast packet serializer (Usage manual)
  • Automatic small packets merging
  • Automatic fragmentation of reliable packets
  • Automatic MTU detection
  • Optional CRC32C checksums
  • UDP NAT hole punching
  • NTP time requests
  • Packet loss and latency simulation
  • IPv6 support (using separate socket for performance)
  • Connection statistics
  • Multicasting (for discovering hosts in local network)
  • Unity support
  • Support for .NET8 optimized socket calls (much less gc)
  • Supported platforms:
    • Windows/Mac/Linux (.NET Framework, Mono, .NET Core, .NET Standard)
    • Lumin OS (Magic Leap)
    • MonoGame
    • Godot
    • Unity 2021.2 (Desktop platforms, Android, iOS, Switch)

Support developer

  • "Buy Me A Coffee"

  • USDT TRC20: TE5eBgq8SyEeZFKtCgZG9GwL34sANmbc67

  • USDT BEP20/ERC20: 0x4c0D6DC76c6A6B354f5ec6c9e51893fFC6510d1E

  • Bitcoin: bc1q269ecs8r5vnrum5qr5j98sdglhnxlulv0f6egd

Unity notes!!!

  • Minimal supported Unity is 2021.2. For older Unity versions use 1.x library versions
  • Always use library sources or OpenUPM package instead of precompiled DLL files ( because there are platform specific #ifdefs and workarounds for unity bugs )

Usage samples

Client

var listener = new EventBasedNetListener();
var client = new NetManager(listener);
client.Start();
client.Connect("localhost" /* host IP or name */, 9050 /* port */, "SomeConnectionKey" /* text key or NetDataWriter */);
listener.NetworkReceiveEvent += (fromPeer, dataReader, channel, deliveryMethod) =>
{
    Console.WriteLine("We got: {0}", dataReader.GetString(100 /* max length of string */));
    dataReader.Recycle();
};

while (!Console.KeyAvailable)
{
    client.PollEvents();
    Thread.Sleep(15);
}

client.Stop();

Server

var listener = new EventBasedNetListener();
var server = new NetManager(listener);
server.Start(9050 /* port */);

listener.ConnectionRequestEvent += request =>
{
    if(server.ConnectedPeersCount < 10 /* max connections */)
        request.AcceptIfKey("SomeConnectionKey");
    else
        request.Reject();
};

listener.PeerConnectedEvent += peer =>
{
    Console.WriteLine("We got connection: {0}", peer);  // Show peer IP
    var writer = new NetDataWriter();         // Create writer class
    writer.Put("Hello client!");                        // Put some string
    peer.Send(writer, DeliveryMethod.ReliableOrdered);  // Send with reliability
};

while (!Console.KeyAvailable)
{
    server.PollEvents();
    Thread.Sleep(15);
}
server.Stop();
Repositórios relacionados
ngosang/trackerslist

Updated list of public BitTorrent trackers

GNU General Public License v2.0trackersbittorrent-trackers
ngosang.github.io/trackerslist/
54.6k6.6k
ehang-io/nps

一款轻量级、高性能、功能强大的内网穿透代理服务器。支持tcp、udp、socks5、http等几乎所有流量转发,可用来访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、内网socks5代理等等……,并带有功能强大的web管理端。a lightweight, high-performance, powerful intranet penetration proxy server, with a powerful web management terminal.

GoGo ModulesGNU General Public License v3.0sockstcp
ehang.io/nps/documents
34.1k6.1k
ginuerzh/gost

GO Simple Tunnel - a simple tunnel written in golang

GoGo ModulesMIT Licensegotunnel
18.1k2.6k
snail007/goproxy

🔥 Proxy is a high performance HTTP(S) proxies, SOCKS5 proxies,WEBSOCKET, TCP, UDP proxy server implemented by golang. Now, it supports chain-style proxies,nat forwarding in different lan,TCP/UDP port forwarding, SSH forwarding.Proxy是golang实现的高性能http,https,websocket,tcp,socks5代理服务器,支持内网穿透,链式代理,通讯加密,智能HTTP,SOCKS5代理,黑白名单,限速,限流量,限连接数,跨平台,KCP支持,认证API。

GoGo ModulesGNU General Public License v3.0http-proxyhttps-proxy
goproxy.win
17k3.1k
skywind3000/kcp

:zap: KCP - A Fast and Reliable ARQ Protocol

CMIT Licensekcpudp
16.8k2.6k
cesanta/mongoose

Embedded web server, with TCP/IP network stack, MQTT and Websocket

COtherwebsocketmqtt
mongoose.ws
12.9k2.9k
panjf2000/gnet

🚀 gnet is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go.

GoGo ModulesApache License 2.0event-drivenevent-loop
gnet.host
11.2k1.1k
wangyu-/udp2raw

A Tunnel which Turns UDP Traffic into Encrypted UDP/FakeTCP/ICMP Traffic by using Raw Socket,helps you Bypass UDP FireWalls(or Unstable UDP Environment)

C++MIT Licensetunneludp-tunnel
8.5k1.3k
open-mmlab/mmpose

OpenMMLab Pose Estimation Toolbox and Benchmark.

PythonPyPIApache License 2.0pose-estimationhuman-pose
mmpose.readthedocs.io/en/latest/
7.8k1.5k
MirrorNetworking/Mirror

#1 Open Source Unity Networking Library

C#MIT Licenseunityunet
mirror-networking.com
6.3k860
ldcsaa/HP-Socket

High Performance TCP/UDP/HTTP Communication Component

COtherhpsocketsocket
oschina.net/p/hp-socket
6.1k1.8k
JackJiang2011/MobileIMSDK

原创全平台IM通信层框架,轻量级、高度提炼,历经10年、久经考验。可能是市面上唯一同时支持UDP+TCP+WebSocket三种协议的同类开源框架,支持 iOS、Android、Java、H5、小程序、Uniapp、鸿蒙Next,服务端基于Netty。

Objective-CApache License 2.0imudp
52im.net/forum-89-1.html
6.1k1.4k