Releases: marcschier/pgm
Releases · marcschier/pgm
Release list
v0.10.0 — strong-name signing & performance
What''s new since v0.9.0
- Strong-name signing — the
Pgmassembly and its friend test assembly are now signed with a committed key (public key token83cf9066eeb59688), soPgmcan be referenced from other strong-named assemblies. Samples and benchmarks stay unsigned. - Performance — ref-struct / span-based codecs, pooled datagrams, and SIMD checksum + FEC, with a BenchmarkDotNet smoke suite.
- Test coverage — substantially expanded deterministic tests (packet parsing, sender NAK repair, receiver windowing, FEC, and lifecycle), raising line coverage to ~96%.
- Docs & versioning — benchmarks documentation, plus a
versionHeightOffsetfix so the package versions as a clean0.10.0.
Package
dotnet add package Pgm --version 0.10.0Full changelog: v0.9.0...v0.10.0
v0.9.0 — initial release
Initial release of Pgm — a pure-managed, NativeAOT-ready implementation of PGM (Pragmatic General Multicast, RFC 3208) reliable multicast over UDP, with no native dependencies.
Highlights
PgmPublisher/PgmSubscriberfacade over a pluggableIPgmDatagramChannel(real UDP multicast or an in-memory bus).- Reliable delivery: NAK-based repair, transmit window, SPM heartbeats, and Reed–Solomon FEC (proactive + on-demand parity).
- Allocation-free wire codecs (
Span/BinaryPrimitives), with SIMD checksum and GF(256) on net8+. - Network-free testing via
InMemoryMulticastBus(inject loss, reordering, and duplication). - Target frameworks:
netstandard2.0,netstandard2.1,net8.0,net9.0,net10.0.
Package
Published to the GitHub Packages and nuget.org feeds as Pgm 0.9.16.