Skip to content

Latest commit

 

History

History
59 lines (39 loc) · 1.72 KB

CHANGELOG.md

File metadata and controls

59 lines (39 loc) · 1.72 KB

0.7.1

This release include another full rewrite of the tag parser, using a new approach that resulted in an average 50% performance improvement over version 0.7.0.

# Baseline: f5c6c32da475a7436c0aa58e4f24874364955dcf

# ARM NEON
twitch/1000 
  before: 245.584 µs
  after:  121.391 µs
  change: -49.4%

# x86 AVX512
twitch/1000
  before: 188.064 µs
  after:   94.260 µs
  change: -50.1%

x86 now has implementations using SSE2, AVX2, and AVX512, choosing the best available at compile time. For that reason, the crate should ideally be compiled with RUSTFLAGS="-C target-cpu=native".

Full commit range: 0.7.0..3b19a23

0.7.0

This release adds support for a few new tags, and changes the names of some typed message fields to better match the tag names used by Twitch.

New tags

  • pinned-chat-paid on Privmsg
  • msg-id on Privmsg

Breaking changes

  • message_id on Privmsg is now id
  • message_id on ClearMsg is now target_message_id
  • tags on IrcMessage/IrcMessageRef now returns string slices for keys
    • You can use tmi::Tag::parse to continue using the enum in your match statements

Performance

This release includes a full rewrite of the tag parser, which resulted in a ~15% performance improvement.

Full commit range: 0.6.1..f5e539f

0.6.1

This is a bugfix release with no new features or breaking changes.

Fixes

  • Under certain conditions, the SIMD version of the prefix parser would cause a panic. It has been disabled until the issue can be resolved.

Full commit range: 0.6.0..36f8210