Skip to main content

pact_plugin_driver/
lib.rs

1//! Pact plugin driver library for Rust
2
3/// Recommended `tracing`/`log` filter directives to suppress gRPC transport-layer trace
4/// noise (h2 frame encoding, tonic channel reconnects, hyper connection pool chatter).
5///
6/// Add this to `RUST_LOG` or compose it into your `EnvFilter` in the test harness:
7/// ```text
8/// RUST_LOG=warn,my_crate=debug,pact_plugin_driver=info,h2=warn,hyper=warn,hyper_util=warn,tonic=warn,tower=warn
9/// ```
10/// Or in code:
11/// ```rust,ignore
12/// use tracing_subscriber::EnvFilter;
13/// let filter = EnvFilter::new(format!("info,{}", pact_plugin_driver::TRANSPORT_FILTER_DIRECTIVES));
14/// ```
15pub const TRANSPORT_FILTER_DIRECTIVES: &str = "h2=warn,hyper=warn,hyper_util=warn,tonic=warn,tower=warn";
16
17pub mod call_chain;
18pub mod catalogue_manager;
19mod child_process;
20pub mod core_capabilities;
21pub mod grpc_plugin;
22pub(crate) mod plugin_host;
23pub mod content;
24pub mod download;
25pub mod field;
26#[cfg(feature = "lua")]
27pub mod lua_plugin;
28mod metrics;
29pub mod mock_server;
30pub mod plugin_log_sink;
31pub mod plugin_manager;
32pub mod plugin_models;
33pub mod proto;
34// Public because the V2-only message types are part of the driver's public API: the field-level
35// operations (proposal 006) have no V1 equivalent, so the embedding Pact framework needs these
36// types to implement `core_capabilities::CoreFieldMatcher`/`CoreFieldGenerator`.
37pub mod proto_v2;
38pub mod repository;
39pub mod test_context;
40pub mod utils;
41pub mod verification;