1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
//! DSH Configuration for Kafka
//!
//! This module provides all necessary configurations for consuming and producing messages
//! to/from the DSH (Data Services Hub) Kafka Cluster. The [`DshKafkaConfig`] trait is at
//! the core of this module, guiding you to set the essential Kafka config parameters
//! automatically (e.g., brokers, security certificates, group ID).
//!
//! # Example
//! ```
//! use dsh_sdk::DshKafkaConfig;
//! use rdkafka::ClientConfig;
//! use rdkafka::consumer::StreamConsumer;
//!
//! # #[tokio::main]
//! # async fn main() -> Result<(), Box<dyn std::error::Error>> {
//! // Build an rdkafka consumer with DSH settings.
//! let consumer: StreamConsumer = ClientConfig::new()
//! .set_dsh_consumer_config()
//! .create()?;
//!
//! // Use your consumer...
//! # Ok(())
//! # }
//! ```
/// Trait defining core DSH configurations for Kafka consumers and producers.
///
/// Implementing `DshKafkaConfig` ensures that the correct settings (including SSL)
/// are applied for connecting to a DSH-managed Kafka cluster. The trait provides:
/// - [`set_dsh_consumer_config`](DshKafkaConfig::set_dsh_consumer_config)
/// - [`set_dsh_producer_config`](DshKafkaConfig::set_dsh_producer_config)
/// - [`set_dsh_group_id`](DshKafkaConfig::set_dsh_group_id)
/// - [`set_dsh_certificates`](DshKafkaConfig::set_dsh_certificates)
///
/// # Environment Variables
/// Via environment variables you can override or supplement certain default settings:
///
/// See [ENV_VARIABLES.md](https://github.com/kpn-dsh/dsh-sdk-platform-rs/blob/main/dsh_sdk/ENV_VARIABLES.md) for the full list.
///
/// By configuring these variables, you can control broker endpoints, group IDs, and
/// various Kafka client behaviors without modifying code.