Skip to main content

tako_rs_plugins/
plugins.rs

1//! Built-in plugin implementations.
2//!
3//! Each submodule provides one ready-to-use plugin (CORS, compression, rate
4//! limiting, idempotency, metrics) gated behind the appropriate feature flag.
5
6/// Compression plugin for automatic response compression.
7#[cfg(feature = "plugins")]
8#[cfg_attr(docsrs, doc(cfg(feature = "plugins")))]
9pub mod compression;
10
11/// CORS (Cross-Origin Resource Sharing) plugin for handling cross-origin requests.
12#[cfg(feature = "plugins")]
13#[cfg_attr(docsrs, doc(cfg(feature = "plugins")))]
14pub mod cors;
15
16/// Rate limiting plugin for controlling request frequency.
17#[cfg(feature = "plugins")]
18#[cfg_attr(docsrs, doc(cfg(feature = "plugins")))]
19pub mod rate_limiter;
20
21/// Metrics/tracing plugin for integrating with systems like Prometheus or OpenTelemetry.
22#[cfg(any(feature = "metrics-prometheus", feature = "metrics-opentelemetry"))]
23#[cfg_attr(
24  docsrs,
25  doc(cfg(any(feature = "metrics-prometheus", feature = "metrics-opentelemetry")))
26)]
27pub mod metrics;
28
29/// Idempotency-Key based request de-duplication plugin.
30#[cfg(feature = "plugins")]
31#[cfg_attr(docsrs, doc(cfg(feature = "plugins")))]
32pub mod idempotency;