Skip to content

v0.6.0

Latest

Choose a tag to compare

@tsaarni tsaarni released this 26 Oct 12:52
· 5 commits to main since this release
123a8fa

What's Changed

  • Improved performance when viewing large capture files.
  • Message filtering now uses the CEL (Common Expression Language) syntax.
    • CEL parsing errors are highlighted in red, with detailed error messages shown on hover.
    • Added CEL syntax help in UI, see summary below.
  • UI enhancements:
    • Added option to toggle between UTC and local time.
    • Added button to clear the filter string.

New CEL-Based Message Capture Filtering

This release introduces a new filtering language based on CEL (Common Expression Language), replacing the previous syntax. The main features are summarized below.

Available Fields:

  • message_id (int) – Sequential message identifier
  • stream_id (int) – Stream identifier for the message
  • direction (string) – Either "send" or "recv"
  • time (string) – Timestamp in ISO 8601 format
  • method (string) – gRPC method name (e.g., "/demo.Demo/Countdown")
  • message (string) – Message type name (e.g., "demo.CountdownReply")
  • peer_address (string) – Remote peer address
  • content (map) – The message payload itself
  • error (string, optional) – Error message if present

Operators:

  • ==, !=, <, >, <=, >=
  • && (and), || (or), ! (not)
  • in – e.g., "Countdown" in method

String Methods:

  • .contains(substring) – Check if string contains substring
  • .startsWith(prefix) – Check if string starts with prefix
  • .endsWith(suffix) – Check if string ends with suffix
  • .matches(regex) – Check if string matches regex pattern

Examples:

  • method.contains('Countdown') – Methods containing "Countdown"
  • direction == 'recv' – Only received messages
  • stream_id == 1 – Messages from stream 1
  • content.value > 5 – Content field value greater than 5
  • method.startsWith('/demo') && direction == 'send' – Combined conditions
  • message.matches('.*Reply') – Messages ending with "Reply"

See cel-js documentation for more details.

Full Changelog: v0.5.0...v0.6.0