NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #3059 most downloaded on crates.io
Macros for Cadence, an extensible Statsd client for Rust
Last release 6 months ago
11 Apr 2026
Release timing varies
gaps range from 2 weeks to 1.1 years
Nearly every release is documented
notes for 15 of 15 stable releases
1 version withdrawn
withdrawn after publishing
6 years old
16 releases · first in 2021
One column per quarter.
Allow UDP sinks (UdpMetricSink, BufferedUdpMetricSink) to be configured to periodically re-resolve the hostname of the server that metrics are being s
UdpMetricSink, BufferedUdpMetricSink) to be configured
to periodically re-resolve the hostname of the server that metrics are being
sent to. Examples of this can be found in documentation for each sink,
the README, or examples directory.Fix an issue with BufferedUdpMetricSink stats not being updated per #227. Thanks to @danielnorberg for this contribution.
BufferedUdpMetricSink stats not being updated per
#227. Thanks to @danielnorberg
for this contribution.Fix an issue with MultiLineWriter where buffering could cause metrics to be emitted out of order per #218. Thanks to @dwhjames for this fix.
MultiLineWriter where buffering could cause metrics to
be emitted out of order per #218.
Thanks to @dwhjames for this fix.replace_writer method to MultiLineWriter to allow broken writers to
be replaced (such as connection oriented writers like TCP streams)
per #215.
Thanks to @dwhjames for this contribution.Add support for Datadog Statsd extensions sample rates, container IDs, and explicit timestamps per #211. Thanks to @iksaif for this contribution.
Make the previously internal MultiLineWriter and SocketStats structs available from the cadence::ext module per #206. These can be useful when creatin
MultiLineWriter and SocketStats structs
available from the cadence::ext module per #206.
These can be useful when creating custom MetricSink implementations.
Thanks to @mlowicki for this contribution.Add support for using u64, i32, and u32 types as counters per #201. Thanks to @James-Bartman for this contribution.
u64, i32, and u32 types as counters per
#201. Thanks to @James-Bartman
for this contribution.MetricSink::stats() method to the MetricSink interface to allow
sinks to expose low-level network telemetry per #203.
Thanks to @mlowicki for this contribution.StatsdClient::flush() method to the client to allow time-sensitive
metrics to be flushed sooner than they otherwise might be per
#200. Thanks to @James-Bartman
for this contribution;Version bump for 1.2.0 release
Version bump for 1.2.0 release (#198)
QueuingMetricSinkBuilder to allow an error handler to be set for
the wrapped MetricSink implementation per #195.
Thanks to @mlowicki for this contribution.Update crossbeam-channel dependency to 0.5.11.
crossbeam-channel dependency to 0.5.11.1.60 from 1.56.MetricSink::flush() implementation to QueuingMetricSink per
#191. Thanks to @mlowicki
for this contribution.Remove deprecated StatsdClient::from_udp_host method and Compat trait per #181. These methods have been deprecated since v0.26. See MIGRATION.md for m…
StatsdClient::from_udp_host method and Compat trait per
#181. These methods have been
deprecated since v0.26. See MIGRATION.md for more information.Changelog and version bumps for 0.29.1
Changelog and version bumps for 0.29.1
Add support for "default tags" that can be added to a StatsdClient when creating it using the builder per #172. Default tags will be automatically add
StatsdClient when creating
it using the builder per #172.
Default tags will be automatically added to all metrics emitted by the client.
Thanks to @look for this contribution.Breaking change - Add support for packed values which allows multiple values to be sent as a single metric for histogram, distribution, and timer type…
Vec<T> for histogram, distribution, and timer
methods. Note that this feature is a Datadog extension and so may not be supported
by your server. It is supported by versions >=v6.25.0 && <v7.0.0 or >=v7.25.0
of the Datadog agent. Thanks to @Jason8Ni for this contribution.Breaking change - StatsdClient no longer implements the Clone trait due to now using Box internally instead of Arc per #163. Where StatsdClient was .c…
StatsdClient no longer implements the Clone trait
due to now using Box internally instead of Arc per
#163. Where StatsdClient
was .clone()'d previously, it should now be wrapped with an Arc to enable
it to be cloned.Breaking change - Client traits are now generic across supported types of values #132. This change should be source-compatible in most cases for users…
prelude module. Type-specific deprecated methods have been moved to a new
Compat trait to ease this migration. This trait and its implementation will
be removed in a future release. See MIGRATION.md for more
information.f64 values for histogram and distribution metric types per
#131.Breaking change - Added support for DataDog distribution metric types per #125 thanks to @duarten.
Breaking change - Added support for DataDog distribution metric types per #125 thanks to @duarten.
Breaking change - Rewrite SpyMetricSink and BufferedSpyMetricSink
introduced in 0.22.0 to use channels for making written metrics available
instead of shared Write implementation wrapped with a Mutex. The newly
changed sinks now return a crossbeam_channel::Receiver<Vec<u8>> instance
from their constructors that callers can use to read any metrics written by
the sink. This avoids accidental cases of mutex poisoning
which can happen when the Mutex is held when an assertion fails as part of
a test per #124.
Examples of how to use the newly rewritten sinks can be found in:
Breaking change - Remove unsafe uses of static mut used for global state
related to macros which caused undefined behavior per
#129 thanks to @parasyte.
A consequence of this that cadence_macros::set_global_default and
cadence_macros::get_global_default now only accept instances of StatsdClient,
not the trait MetricClient.
cadence-macros yanked due to causing undefined behavior #129
cadence-macros yanked due to causing undefined behavior #129
cadence crate will continue to
contain the primary client and API. The cadence-macros crate contains
convenience macros for removing some boilerplate required to emit metrics
per #114.MultilineWriter (used by buffered sinks) to honor the Write::write
contract per #117.Your coding agent can read these notes before it upgrades. Set up the MCP server →