snailmail 0.1.0
Initial public release.
Added
LatencyRangeServer: a loopback HTTP server that serves a directory tree over HTTP Range with injectable latency and bandwidth limits, for benchmarking range / object-store / virtual-chunk reads. One object per file (the shape of an Icechunk virtual dataset), range- and traversal-safe;baseis the root,url(key)builds a key URL, andfiles()lists the served keys.- Pluggable per-request latency distributions:
LogNormal(the recommended default),Normal,Exponential, andFixed, each with explicit, distribution-specific parameters. Draws are pre-generated and served round-robin (O(1), reproducible per seed). - Shared FIFO bandwidth pipe (
AsyncSharedPipe) so response bytes serialize through a capped egress while round-trips stay parallel. - Request accounting via
stats(): GET/request counts, 404 misses (n_misses), total bytes, peak concurrency (max_in_flight), and per-method / per-path breakdowns; persists untilreset_counts(). snailmailCLI with a--distselector and explicit per-distribution flags, a--jsonmachine-readable address line (flushed before serving), and--version.