Releases: robotty/twitch-irc-rs
v5.0.1
v5.0.0
- Breaking: A lot of details regarding the metrics collection system have been reworked. (#160)
- Switched from using the
metrics
crate to using thepromtheus
crate. - Usage of the new library and new config types now allows you to specify a
Registry
(from theprometheus
crate) to register the metrics on, instead of being forced
to use one global registry like with themetrics
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, onlyclient => 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_*
totwitchirc_*
to align with
the prometheus naming conventions. twitch_irc_reconnects
has been renamed totwitchirc_connections_failed
to better
reflect what it actually counts.- Added
twitchirc_connections_created
as the obvious counterpart to aforementioned metric.
- Switched from using the
- Breaking: Handle
emote_sets
asString
s since not all of them are in factu64
s (#162) - Breaking: Removed
ChatClient::say_in_response
andChatClient::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
andme_in_reply_to
methods to send/me
messages. (#170) - Minor: Implement
Clone
forRefreshingLoginCredentials
. (#176) - Minor: Implement
Eq
for many structs. (#177)
v4.1.0
v4.0.0
- 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
andTwitchIRCClient.set_wanted_channels
to ensure channel names are in a sane format - these two functions now return aResult
that you will have to handle in your code. The underlying used validation function is exported for use astwitch_irc::validate::validate_login
. (#149, #154, #156) - Breaking: This library now no longer uses the
log
crate for logging. All logging is now done viatracing
. 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 torefreshing-token-native-tls
to reflect the fact that it pulls in the OS's native TLS library (e.g. OpenSSL/Schannel). Added therefreshing-token-rustls-native-roots
andrefreshing-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
forRefreshingLoginCredentials
(#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
v3.0.0
-
Breaking: Transports were refactored slightly:
Renamedtwitch_irc::TCPTransport
toSecureTCPTransport
, addedPlainTCPTransport
for plain-text IRC connections.
Renamedtwitch_irc::WSSTransport
toSecureWSTransport
, addedPlainWSTransport
for plain-text IRC-over-WebSocket-connections.
Refactored feature flags: This crate used to only have thetransport-tcp
andtransport-wss
feature flags. The following is the new list of feature flags relevant to transports:transport-tcp
enablesPlainTCPTransport
transport-tcp-native-tls
enablesSecureTCPTransport
using OS-native TLS functionality (and using the root certificates configured in your operating system).transport-tcp-rustls-native-roots
enablesSecureTCPTransport
using rustls, but still using the root certificates configured in your operating system.transport-tcp-rustls-webpki-roots
enablesSecureTCPTransport
using rustls with root certificates provided bywebpki-roots
(Mozilla's root certificates). This is the most portable since it does not rely on OS-specific functionality.transport-ws
(notice this is nowws
instead ofwss
) - EnablesPlainWSTransport
transport-ws-native-tls
- EnablesSecureWSTransport
using native TLS (same as above)transport-ws-rustls-webpki-roots
- EnablesSecureWSTransport
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
andunban
methods toTwitchIRCClient
(#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
- Bugfix: Fixed fields on
UserAccessToken
being all private, preventing library users from constructing the type (as part of theRefreshingLoginCredentials
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.