Laminar is an application-level transport protocol which provides configurable reliability and ordering guarantees built on top of UDP. It focuses on fast-paced fps-games and provides a lightweight, message-based interface.
Laminar was designed to be used within the Amethyst game engine but is usable without it.
This library is loosely based off of Gaffer on Games and has features similar to RakNet, Steam Socket, and netcode.io. The idea is to provide a native Rust low-level UDP-protocol which supports the use of cases of video games that require multiplayer features. The library itself provides a few low-level types of packets that provide different types of guarantees. The most basic are unreliable and reliable packets. Ordering, sequencing can be done on multiple streams. For more information, read the projects README.md, book, docs or examples.
Contains the configuration options to configure laminar for special use-cases.
Implements a concept of connections on top of datagram socket.
Connection capabilities depends on what is an actual
Network simulator. Used to simulate network conditions as dropped packets and packet delays. For use in FakeSocket::set_link_conditioner.
This is a user friendly packet containing the payload, endpoint, and reliability guarantees. A packet could have reliability guarantees to specify how it should be delivered and processed.
A reliable UDP socket implementation with configurable reliability and ordering guarantees.
Contains the information about a certain ‘virtual connection’ over udp. This connections also keeps track of network quality, processing packets, buffering data related to connection etc.
Enum to specify how a packet should be delivered.
Enum with all possible network errors that could occur.
Enum to specify how a packet should be arranged.
Events that can occur in
Allows to implement actual connection.
Defines a type of
Allows connection to send packet, send event and get global configuration.
A datagram socket is a type of network socket which provides a connectionless point for sending or receiving data packets.
Wrapped result type for Laminar errors.