[][src]Crate laminar

Laminar is a semi-reliable UDP-based protocol for multiplayer games. This library implements wrappers around the UDP-protocol, and provides a lightweight, message-based interface which provides certain guarantees like reliability and ordering.

Laminar was designed to be used within the Amethyst game engine but is usable without it.

Concepts

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.

Structs

Config

Contains the configuration options to configure laminar for special use-cases.

Packet

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.

Socket

A reliable UDP socket implementation with configurable reliability and ordering guarantees.

Enums

DeliveryGuarantee

Enum to specify how a packet should be delivered.

ErrorKind

Enum with all possible network errors that could occur.

OrderingGuarantee

Enum to specify how a packet should be arranged.

SocketEvent

Events that can occur in laminar and that will be pushed through the event_receiver returned by Socket::bind.

Type Definitions

Result

Wrapped result type for Laminar errors.