Changelog of @hackage/nova-net 0.2.0.0

Changelog

0.2.0.0

Feature complete release.

Protocol Core

  • Jacobson/Karels RTT estimation (RFC 6298) in C
  • ACK bitfield processing with 256-entry ring buffers and 256-bit loss window in C
  • Dual-layer congestion control: AIMD bandwidth + CWND packet window with slow start, congestion avoidance, and fast recovery in C
  • Reliable endpoint with send/receive tracking and ACK generation
  • Five delivery modes: unreliable, unreliable sequenced, reliable unordered, reliable ordered, reliable sequenced
  • Connection four-state FSM with timeout, keepalive, and graceful disconnect

Subsystems

  • Fragment split/reassemble with LRU eviction and timeout cleanup
  • Binary search path MTU discovery
  • Per-source rate limiting, connect tokens with replay detection, FNV-1a address hashing
  • Quality/congestion/traffic counters

Peer Layer

  • SipHash-2-4 in C, OS CSPRNG via getentropy/BCryptGenRandom in C
  • Four-way HMAC-cookie handshake with challenge-response
  • Address migration with cooldown and encryption gate
  • Wire protocol with little-endian encoding, CRC32C integrity, ChaCha20-Poly1305 AEAD
  • Real UDP socket backend via MonadNetwork

Replication

  • NetworkDelta typeclass (diff/apply) with sender-side DeltaTracker and receiver-side BaselineManager
  • Interest management: radius (squared distance) and grid (cell-based with distance weighting)
  • Priority accumulator with budget-constrained drain
  • Snapshot interpolation with playback delay and clamped lerp

Testing Infrastructure

  • Pure deterministic TestNet (State monad, xorshift64 RNG, MonadTime/MonadNetwork instances)
  • Network simulator with token bucket bandwidth, configurable loss/latency/jitter/duplicates/reordering

Port Fixes

Fourteen fixes carried over from the gbnet-hs audit: loss window feedback, CWND recovery exit, ring buffers (wraparound fix), single RTT sample per ACK, double precision, HMAC-bound cookies, migration encryption gate, max pending limit, simultaneous connect, disconnect reason codes, protocol ID validation, squared distance interest, grid weighting, double precision priority.

0.1.0.0

Initial release. Project scaffold, C99 hot path (8 modules), Haskell FFI bindings (9 modules), three-platform CI, Hackage name secured.