This is the home of Yannet - C++ network library for games
This document and repository is WIP. Expect a BETA release around 2025-03-01. See section 3. for BETA release TODO list.
Yannet is developed as part of our TDME2 3D Engine to match the requirements for performant network client and server functionality in video games.
- Yannet is open source
- please check the license
- you find the source code at https://github.com/andreasdr/yannet
- UDP server
- n:m threading model with non blocked IO via kernel event mechanismns(epoll, kqueue or select)
- supports safe messages with acknowledgment and automatic resending
- supports fast messages
- can be used in a heavy multithreaded environment (the networking module is thread safe)
- IPV6 ready
- UDP client
- has single thread with a simple threadsafe API
- supports all features required by UDP server
- IPV6 ready
- Simple HTTP client
- uses a blocking TCP socket, thus it has a simple blocking API
- Ready for REST providing all methods, setting content type and body
- be able to set GET and POST parameters via unordered map
- supports basic authentification
- IPV6 ready
- HTTP download client
- supports basic authentification
- uses a separate thread to download to file
- IPV6 ready
- clean up
- make it integrable into TDME2
- add a TCP server and client
- Multi threading
- UDP client has its own thread
- UDP server can have multiple IO threads, multiple worker threads and always has its own server thread
- HTTP download client has its own thread
- uses 3rd party libraries
- needs to be installed, if not using port-msc
- OpenSSL
- needs to be installed, if not using port-msc
- targeted platforms and its current state
- Windows/MINGW(port completed)
- Windows/MSC(port completed)
- Linux(port completed)
- MacOSX(port completed)
- FreeBSD(port completed)
- NetBSD(port completed)
- OpenBSD(port completed)
- Haiku(port completed)
- Android(port pending)
- iOS(port pending)
- Interested in collaboration? Then drop me a line via mail or use the issues section on yannet@github
- I have to pay my bills, beer and stuff, so if you have any use for this open source project, like educational, productive or fun, ..., consider a donation here PayPal, here GitHub Sponsors or via Amazon Wishlist