Skip to content
dream-net
guide

Documentation

How dream-net carries events between authenticated peers, how to host a server and a client, the limits that bound its memory, and its complete Rust API.

dream-net carries events between a server and its clients: opaque payloads, each with an event id from a shared schema, on a channel that is either reliable and ordered or neither. A host drives it once per frame and polls what arrived. Everything else, from what an event means to who may send it, belongs to the engine above.

Learn it#

  • Start here: a server and a client in one program, from the schema to the first reply.
  • How it fits together: the layers, one frame, the handshake, and what each delivery class promises.

Use it#

  • Schemas and events: declaring channels and events, how ids and the fingerprint are made, and what both ends must agree on.
  • Channels and packets: windows, resends, overflow policies, packet budgets, aggregation and large events.
  • Servers and clients: keys and connect tokens, the frame loop, lifecycle events, peers, sending and disconnecting.
  • Memory and backpressure: the limits on every queue, what happens when one is full, and what a connection can be made to hold.
  • Protocol captures: recording what crossed the host boundary, and reading it back.
  • Connections and the simulator: driving a Connection without sockets, over seeded lossy links.

Look it up#

  • Wire format: the bits of a connection packet, and what the decoder refuses.
  • Compatibility and performance: versions, the supported Rust, the license, what is tested, and benchmark numbers.
  • Rust API: every public type, function and constant.