Skip to content

snailmail 0.1.0

Choose a tag to compare

@ianhi ianhi released this 18 Jun 18:15
c0d1bdf

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; base is the root, url(key) builds a key URL, and files() lists the served keys.
  • Pluggable per-request latency distributions: LogNormal (the recommended default), Normal, Exponential, and Fixed, 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 until reset_counts().
  • snailmail CLI with a --dist selector and explicit per-distribution flags, a --json machine-readable address line (flushed before serving), and --version.