Skip to content

v0.8.2

@ticpu ticpu tagged this 19 Aug 04:06
New features:
- SipMessage::method reads the SIP method from the reassembled bytes without
  parsing the message: the request line for requests, CSeq for responses. It
  answers None wherever the bytes leave the method in doubt, so filtering on it
  drops only what it has classified. A consumer keeping a small fraction of a
  trace can now reject before Level 3 turns every header into owned strings.

Performance:
- The CLI applies --exclude, --method and the default OPTIONS exclusion before
  parsing. On a 352MB ESInet TCP dump the default output drops from 937ms to
  558ms and -m INVITE from 818ms to 378ms.
- Header blocks reach &str through a borrowing conversion instead of a lossy
  one, which also removes the crate's only unsafe block. Parsing every message
  of that dump drops from 1.82s to 1.69s.

Bug fixes:
- --stats and --dialog output is deterministic: methods with equal counts and
  dialog messages sharing a timestamp were ordered by hash map iteration, so
  two runs over one dump could differ.

Build:
- The slash-command definition and secret-scanner config no longer ship in the
  published package.

Documentation:
- docs/performance.md: measured throughput on Zen 4, Cascade Lake and
  Neoverse-N1, why decompression has never been the bottleneck, the CRC64 check
  worth skipping when scanning an archive in bulk, and the protocol for
  measuring a parser change.
Assets 2
Loading