PackageTrack
Sign in Get early access

cadence-macros

Macros for Cadence, an extensible Statsd client for Rust

1.8.0 11M downloads/mo #2937 most downloaded on crates.io 56quarters/cadence

What this package is like to depend on

Last release 4 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

2 releases in the last 12 months

see the full history below

Release timeline

16 releases · Feb 2021 to Apr 2026
2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 16
  1. 1.8.0 11 Apr 2026
    Release notes
    • Allow UDP sinks (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.
    Open source →
  2. 1.7.0 08 Feb 2026
    Release notes
    • Fix an issue with BufferedUdpMetricSink stats not being updated per #227. Thanks to @danielnorberg for this contribution.
    • Update the minimum supported Rust version to 1.70 (from 1.60) since 1.60 is unreliable in CI.
    Open source →
  3. 1.6.0 21 Jun 2025
    Release notes
    • Fix an issue with MultiLineWriter where buffering could cause metrics to be emitted out of order per #218. Thanks to @dwhjames for this fix.
    • Add a 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.
    Open source →
  4. 1.5.0 27 Sep 2024
    Release notes
    • Add support for Datadog Statsd extensions sample rates, container IDs, and explicit timestamps per #211. Thanks to @iksaif for this contribution.
    Open source →
  5. 1.4.0 28 Apr 2024
    Release notes
    • Make the previously internal 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.
    Open source →
  6. 1.3.0 23 Mar 2024
    Release notes
    • Add support for using u64, i32, and u32 types as counters per #201. Thanks to @James-Bartman for this contribution.
    • Add MetricSink::stats() method to the MetricSink interface to allow sinks to expose low-level network telemetry per #203. Thanks to @mlowicki for this contribution.
    • Add 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;
    Open source →
  7. 1.2.0 21 Feb 2024
    Release notes

    Version bump for 1.2.0 release (#198)

    Open source →
    Release notes
    • Add QueuingMetricSinkBuilder to allow an error handler to be set for the wrapped MetricSink implementation per #195. Thanks to @mlowicki for this contribution.
    Open source →
  8. 1.1.0 03 Feb 2024
    Release notes
    • Update crossbeam-channel dependency to 0.5.11.
    • Bump minimum supported Rust version to 1.60 from 1.56.
    • Add MetricSink::flush() implementation to QueuingMetricSink per #191. Thanks to @mlowicki for this contribution.
    Open source →
  9. 1.0.0 02 Dec 2023
    Release notes
    • Remove deprecated StatsdClient::from_udp_host method and Compat trait per #181. These methods have been deprecated since v0.26. See MIGRATION.md for more information.
    Open source →
  10. 0.29.1 22 May 2023
    Release notes

    Changelog and version bumps for 0.29.1

    Open source →
    Release notes
    • Fix a bug where distribution metrics didn't include default tags per #184. Thanks to @danielsig727 for this contribution.
    Open source →
  11. 0.29.0 02 Apr 2022
    Release notes
    • 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 added to all metrics emitted by the client. Thanks to @look for this contribution.
    Open source →
  12. 0.28.0 29 Jan 2022
    Release notes
    • Breaking change - Add support for packed values which allows multiple values to be sent as a single metric for histogram, distribution, and timer types per #169. The Cadence client now accepts 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.
    Open source →
  13. 0.27.0 26 Dec 2021
    Release notes
    • Breaking change - 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.
    • Minor performance improvement in the way metric tags are formatted per #161.
    Open source →
  14. 0.26.0 23 Jul 2021
    Release notes
    • Breaking change - Client traits are now generic across supported types of values #132. This change should be source-compatible in most cases for users importing the Cadence 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.
    • Add support for f64 values for histogram and distribution metric types per #131.
    • Minimum supported Rust version for Cadence is now 1.41 per #138.
    Open source →
  15. 0.25.0 21 Mar 2021
    Release notes
    • 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.

    Open source →
  16. 0.24.0 03 Feb 2021 withdrawn
    Release notes

    cadence-macros yanked due to causing undefined behavior #129

    • Split the project into two crates. The 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.
    • Fix MultilineWriter (used by buffered sinks) to honor the Write::write contract per #117.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive