github bensadeh/tailspin 6.0.0

12 hours ago

Added

  • Highlight HEAD, CONNECT, and OPTIONS HTTP methods by default (#261, thanks @g0l4!)
  • Add builtin keyword highlighting for undefined, NULL, nil, NIL, NaN, FALSE, and TRUE
  • File truncation detection in follow mode
  • Support for parentheses in URL paths (e.g. Wikipedia-style URLs) with balanced parenthesis detection
  • Clear error message for --exec on Windows instead of a generic
    failure (#232)

Fixed

  • Fix zombie processes when using --exec by properly waiting on the child process after it exits
  • Surface the actual error when the stream processor fails during initial read, instead of a generic channel-receive error
  • Gracefully handle broken pipe (e.g. tspin | head) instead of panicking
  • --follow not working on certain filesystems (NFS, FUSE, Docker bind mounts, etc.) by replacing linemux with a polling-based file reader (#240)
  • Crash when reading files with non-UTF-8 content (#31)
  • URLs wrapped in parentheses or single quotes incorrectly including surrounding delimiters in the highlight
  • Files with symlinks in their path could not be opened consistently (#244, #134)
  • Quoted regions now highlight correctly while preserving inner
    highlights (#171)

Crate

  • HighlighterBuilder methods now take owned self instead of &mut self, enabling full method chaining (e.g. Highlighter::builder().with_number_highlighter(...).build())
  • Differentiate between Regexp Errors and Aho-Corasick Errors
  • Feature-gate CLI dependencies (tokio, clap, rayon, etc.) so library consumers can use default-features = false to avoid compiling them

Changed

  • IPv6 highlighting is now opt-in via --extras ipv6 instead of being enabled by default
  • Breaking (CLI): --enable ip-addresses / --disable ip-addresses renamed to --enable ipv4 / --disable ipv4
  • Builtin keyword highlighting of true changed from red to green
  • Breaking (config): The quotes_token key in the [quotes] section of theme config files has been renamed to quote_token. Existing config files using the old key will silently fall back to the default (")
  • Breaking (crate): QuotesConfig renamed to QuoteConfig and its quotes_token field renamed to quote_token

Performance

  • Use SIMD-accelerated memchr for newline detection in buffered reader
  • Cache ANSI escape sequence finders using LazyLock statics instead of recreating per call
  • Reduced string allocations across highlighters by replacing format!() with write!(), eliminating per-match allocations, and increasing pre-allocation buffers

Build

  • Enable LTO, single codegen unit, and strip = true for release builds
  • Trimmed and modernized dependencies: replaced async-trait with native async traits, miette with anyhow, ctrlc with tokio signals; removed uuid

Don't miss a new tailspin release

NewReleases is sending notifications on new releases.