Skip to content

Releases: robotty/twitch-irc-rs

v5.0.1

29 Aug 20:48
cf11a9f
Compare
Choose a tag to compare
  • Minor: Removed unused features from the chrono dependency (#185)
  • Bugfix: Upgraded dependencies to eliminate vulnerability in the webpki crate. (#193)

v5.0.0

25 Oct 20:24
20aa872
Compare
Choose a tag to compare
  • Breaking: A lot of details regarding the metrics collection system have been reworked. (#160)
    • Switched from using the metrics crate to using the promtheus crate.
    • Usage of the new library and new config types now allows you to specify a Registry
      (from the prometheus crate) to register the metrics on, instead of being forced
      to use one global registry like with the metrics crate.
    • The config option metrics_identifier in the config has been replaced by a
      MetricsConfig enum, which now allows complete flexibility regarding what labels
      are added to the metrics. (Previously, only client => a_value_chosen_by_you could be
      added, and adding it was mandatory due to the API design I had chosen previously.)
    • This also means you can now specify any amount of additional key => value label pairs
      to be placed on the exported metrics. I imagine this to be useful to export any kind of
      metadata about your application/use-case.
    • The metrics have been renamed from twitch_irc_* to twitchirc_* to align with
      the prometheus naming conventions
      .
    • twitch_irc_reconnects has been renamed to twitchirc_connections_failed to better
      reflect what it actually counts.
    • Added twitchirc_connections_created as the obvious counterpart to aforementioned metric.
  • Breaking: Handle emote_sets as Strings since not all of them are in fact u64s (#162)
  • Breaking: Removed ChatClient::say_in_response and ChatClient::reply_to_privmsg in favour
    of a new API design (Chatclient::say_in_reply_to) which does the same thing as the previous
    functions, just with a sleeker API design. (#166)
  • Breaking: Removed support for parsing HOSTTARGET messages (Twitch has removed Host mode since 2022-10-03) (#183)
  • Minor: Added me and me_in_reply_to methods to send /me messages. (#170)
  • Minor: Implement Clone for RefreshingLoginCredentials. (#176)
  • Minor: Implement Eq for many structs. (#177)

v4.1.0

20 Sep 15:13
929da5f
Compare
Choose a tag to compare

v4.0.0

22 Mar 12:40
ec34e31
Compare
Choose a tag to compare
  • Breaking: Updated metrics to version 0.18. (#146)
  • Breaking: Implement user login fetching via the API when using RefreshingLoginCredentials. (#144)
  • Breaking: It was possible to trip up the channel joinery logic of the client pretty good by joining channels with a comma in them. Added a basic validation step to TwitchIRCClient.login and TwitchIRCClient.set_wanted_channels to ensure channel names are in a sane format - these two functions now return a Result that you will have to handle in your code. The underlying used validation function is exported for use as twitch_irc::validate::validate_login. (#149, #154, #156)
  • Breaking: This library now no longer uses the log crate for logging. All logging is now done via tracing. This allows you to now differentiate log messages by async task, by connection, and if configured, even by client if your application is running multiple clients. A new configuration option has been introduced for this: config.tracing_identifier. (#151)
  • Breaking: Renamed the refreshing-token feature to refreshing-token-native-tls to reflect the fact that it pulls in the OS's native TLS library (e.g. OpenSSL/Schannel). Added the refreshing-token-rustls-native-roots and refreshing-token-rustls-webpki-roots feature flags to complement the other parts of the library where you can choose between the three options. (#153)
  • Minor: Implement Clone for RefreshingLoginCredentials (#143)
  • Minor: Added feature flag transport-ws-rustls-native-roots to allow websocket connections powered by rustls using the OS-native root certificates. (#146)
  • Minor: Updated some further dependencies:
    • async-tungstenite 0.13 -> 0.17
    • rustls-native-certs 0.5 -> 0.6
    • tokio-rustls 0.22 -> 0.23
    • tokio-util 0.6 -> 0.7
    • webpki-roots 0.21 -> 0.22

v3.0.1

24 Jun 22:48
1ecb11b
Compare
Choose a tag to compare
  • Bugfix: Fixed FollowersOnlyMode enum not being exported from the crate. (#135)

v3.0.0

18 Jun 22:42
dd2c258
Compare
Choose a tag to compare
  • Breaking: Transports were refactored slightly:
    Renamed twitch_irc::TCPTransport to SecureTCPTransport, added PlainTCPTransport for plain-text IRC connections.
    Renamed twitch_irc::WSSTransport to SecureWSTransport, added PlainWSTransport for plain-text IRC-over-WebSocket-connections.
    Refactored feature flags: This crate used to only have the transport-tcp and transport-wss feature flags. The following is the new list of feature flags relevant to transports:

    • transport-tcp enables PlainTCPTransport
    • transport-tcp-native-tls enables SecureTCPTransport using OS-native TLS functionality (and using the root certificates configured in your operating system).
    • transport-tcp-rustls-native-roots enables SecureTCPTransport using rustls, but still using the root certificates configured in your operating system.
    • transport-tcp-rustls-webpki-roots enables SecureTCPTransport using rustls with root certificates provided by webpki-roots (Mozilla's root certificates). This is the most portable since it does not rely on OS-specific functionality.
    • transport-ws (notice this is now ws instead of wss) - Enables PlainWSTransport
    • transport-ws-native-tls - Enables SecureWSTransport using native TLS (same as above)
    • transport-ws-rustls-webpki-roots - Enables SecureWSTransport using rustls with Mozilla's root certificates (same as above)

    Some accompanying items have also been made pub in the crate.

  • Breaking: Updated metrics to version 0.16.

  • Minor: Added timeout, untimeout, ban and unban methods to TwitchIRCClient (#110)

  • Minor: Added serde feature, adding the ability to serialize or deserialize the command structs using serde. (#120)

  • Minor: Metrics are no longer initialized, undoing the change introduced with v2.2.0 (#129)

v2.2.0

24 Feb 09:46
6d0b364
Compare
Choose a tag to compare
  • Bugfix: Fixed fields on UserAccessToken being all private, preventing library users from constructing the type (as part of the RefreshingLoginCredentials system). (#101, #103)
  • Reduce the amount of dependencies used. (#96)
  • Update metrics dependency to v0.14. Metrics are now registered with a description when the
    client is created. (#97)
  • Chore: Fix all the clippy warnings in the project.

v2.1.0

15 Jan 15:36
0a97968
Compare
Choose a tag to compare
  • Minor: Added say_in_response and reply_to_privmsg methods to TwitchIRCClient (#84)

v2.0.0

06 Jan 21:08
500a83b
Compare
Choose a tag to compare
  • Updates to tokio v1.0 (#75)

v1.0.0

05 Dec 11:19
6689b6a
Compare
Choose a tag to compare
  • Reverts to tokio v0.2 (#56)