Skip to content
dream-net

dream-netChangelog

Changelog

Every release of dream-net, newest first. A release marked unreleased is declared in mod.toml and published when its tag is pushed.

Releases

2 declared

  1. 1.1.0 stable 2026-09-29

    A peer is announced before its first event, captures without payloads keep their lengths, and the codec’s decode errors are standard Rust errors.

    Added

    • wire::DecodeError and wire::Malformed implement std::error::Error, and DecodeError implements Display, like the crate’s other errors: a malformed packet prints its reason, which is also its source(), and a mismatch prints the foreign hello.

    Fixed

    • Server and Client queued Connected after the events of the packet that completed the handshake, so a host could poll a peer’s Message before its Connected. Connected now comes first.
    • CaptureWriter without payloads wrote each event’s length from its payload, so a capture read back and written again recorded every event as zero bytes. It now writes the record’s len.
    dream-net 1.1.0 100.18 kB · crates.io
    View on crates.io
    Verify · sha256 2df0cb5ee602…4ba4d51d
    File
    dream-net-1.1.0.crate
    Size
    102580 bytes
    SHA-256
    2df0cb5ee602184918adad25df359efd364166568947e03e73c747144ba4d51d

    The same digest as the crates.io index's checksum, which Cargo checks on every download.

  2. 1.0.0 stable 2026-09-27

    First release: secure UDP between authenticated peers, reliable-ordered and unreliable event channels, and a schema handshake, over the Más Bandwidth netcode, reliable and serialize crates.

    Added

    • A frozen Schema of channels and events: event ids from sorted names, never registration order, and a 128-bit fingerprint (truncated SHA-256) peers compare before any event is accepted.
    • Reliable-ordered channels, delivered exactly once in send order and resent until acknowledged, and unreliable-unordered channels with a choice of overflow policy.
    • Many events aggregated into each packet, and events larger than a datagram fragmented by reliable.
    • Server and Client over netcode: connect tokens, encryption, generation-checked PeerId handles, and polled lifecycle events, including schema and protocol mismatches reported with both fingerprints on both ends.
    • Bounded memory on every queue: pending, parked and pooled bytes, with at most max_pending_bytes + 2 * max_parked_bytes held per connection on receive.
    • Protocol captures at the host boundary, in a versioned binary format that carries the schema’s names.
    • Connection independent of sockets, and a deterministic link simulator for tests and benchmarks.
    • Wire format 2, pinned by golden bytes; warm send and receive paths that allocate nothing; fuzz harnesses, a soak test and Criterion benchmarks.
    dream-net 1.0.0 98.02 kB · crates.io
    View on crates.io
    Verify · sha256 fe667f5bd125…5fd03c87
    File
    dream-net-1.0.0.crate
    Size
    100369 bytes
    SHA-256
    fe667f5bd1256bcebe4fef2143ad2a09e84ed73301405437856ea17e5fd03c87

    The same digest as the crates.io index's checksum, which Cargo checks on every download.