Skip to content

Commit 815088e

Browse files
authored
Merge 248be16 into 11def17
2 parents 11def17 + 248be16 commit 815088e

File tree

16 files changed

+400
-117
lines changed

16 files changed

+400
-117
lines changed

eventmesh-sdks/eventmesh-sdk-rust/Cargo.toml

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,16 @@ description = "Rust client for Apache EventMesh"
2626
license = "Apache-2.0"
2727
keywords = ["EventMesh", "SDK", "rust-client", "rust", "eventmesh-rust-sdk"]
2828
readme = "./README.md"
29-
homepage = "https://github.com/apache/eventmesh"
30-
repository = "https://github.com/apache/eventmesh"
29+
homepage = "https://github.com/apache/eventmesh"
30+
repository = "https://github.com/apache/eventmesh"
3131

3232
[features]
33-
default = ["grpc","eventmesh_message"]
34-
full = ["grpc","eventmesh_message"]
35-
eventmesh_message=[]
36-
tls=[]
37-
grpc=[]
33+
default = ["grpc", "eventmesh_message"]
34+
full = ["grpc", "eventmesh_message","cloud_events"]
35+
eventmesh_message = []
36+
cloud_events = []
37+
tls = []
38+
grpc = []
3839

3940
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
4041
[dependencies]
@@ -57,6 +58,9 @@ serde_json = "1.0"
5758
tracing = "0.1"
5859
tracing-subscriber = "0.3"
5960

61+
#cloudEvents
62+
cloudevents-sdk = "0.7.0"
63+
6064
# tools crate
6165
thiserror = "1.0"
6266
bytes = "1"
@@ -65,16 +69,17 @@ uuid = { version = "1.4.1", features = ["v4"] }
6569
local-ip-address = "0.5.6"
6670
futures = "0.3"
6771
log = "0.4.20"
72+
chrono = "0.4"
6873

6974
[build-dependencies]
7075
tonic-build = "0.10"
7176

7277
[[example]]
7378
name = "producer_example"
7479
path = "examples/grpc/producer_example.rs"
75-
required-features = ["grpc","eventmesh_message"]
80+
required-features = ["grpc", "eventmesh_message","cloud_events"]
7681

7782
[[example]]
7883
name = "consumer_example"
7984
path = "examples/grpc/consumer_example.rs"
80-
required-features = ["grpc","eventmesh_message"]
85+
required-features = ["grpc", "eventmesh_message"]

eventmesh-sdks/eventmesh-sdk-rust/examples/grpc/producer_example.rs

Lines changed: 71 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -15,47 +15,88 @@
1515
* limitations under the License.
1616
*/
1717
use std::time::{SystemTime, UNIX_EPOCH};
18+
19+
use chrono::Utc;
20+
use cloudevents::{EventBuilder, EventBuilderV10};
1821
use tracing::info;
1922

23+
use eventmesh::common::ProtocolKey;
2024
use eventmesh::config::EventMeshGrpcClientConfig;
2125
use eventmesh::grpc::grpc_producer::EventMeshGrpcProducer;
22-
use eventmesh::grpc::GrpcEventMeshMessageProducer;
26+
use eventmesh::grpc::GrpcEventMeshProducer;
2327
use eventmesh::log;
2428
use eventmesh::model::message::EventMeshMessage;
2529

2630
#[eventmesh::main]
2731
async fn main() -> Result<(), Box<dyn std::error::Error>> {
2832
log::init_logger();
2933

30-
let grpc_client_config = EventMeshGrpcClientConfig::new();
31-
let mut producer = GrpcEventMeshMessageProducer::new(grpc_client_config);
32-
3334
//Publish Message
34-
info!("Publish Message to EventMesh........");
35-
let message = EventMeshMessage::default()
36-
.with_biz_seq_no("1")
37-
.with_content("123")
38-
.with_create_time(SystemTime::now().duration_since(UNIX_EPOCH)?.as_millis() as u64)
39-
.with_topic("123")
40-
.with_unique_id("1111");
41-
let response = producer.publish(message.clone()).await?;
42-
info!("Publish Message to EventMesh return result: {}", response);
43-
44-
//Publish batch message
45-
info!("Publish batch message to EventMesh........");
46-
let messages = vec![message.clone(), message.clone(), message.clone()];
47-
let response = producer.publish_batch(messages).await?;
48-
info!(
49-
"Publish batch message to EventMesh return result: {}",
50-
response
51-
);
52-
53-
//Publish batch message
54-
info!("Publish request reply message to EventMesh........");
55-
let response = producer.request_reply(message.clone(), 1000).await?;
56-
info!(
57-
"Publish request reply message to EventMesh return result: {}",
58-
response
59-
);
35+
#[cfg(feature = "eventmesh_message")]
36+
{
37+
let grpc_client_config = EventMeshGrpcClientConfig::new();
38+
let mut producer = GrpcEventMeshProducer::new(grpc_client_config);
39+
info!("Publish Message to EventMesh........");
40+
let message = EventMeshMessage::default()
41+
.with_biz_seq_no("1")
42+
.with_content("123")
43+
.with_create_time(SystemTime::now().duration_since(UNIX_EPOCH)?.as_millis() as u64)
44+
.with_topic("123")
45+
.with_unique_id("1111");
46+
let response = producer.publish(message.clone()).await?;
47+
info!("Publish Message to EventMesh return result: {}", response);
48+
49+
//Publish batch message
50+
info!("Publish batch message to EventMesh........");
51+
let messages = vec![message.clone(), message.clone(), message.clone()];
52+
let response = producer.publish_batch(messages).await?;
53+
info!(
54+
"Publish batch message to EventMesh return result: {}",
55+
response
56+
);
57+
58+
//Publish batch message
59+
info!("Publish request reply message to EventMesh........");
60+
let response = producer.request_reply(message.clone(), 1000).await?;
61+
info!(
62+
"Publish request reply message to EventMesh return result: {}",
63+
response
64+
);
65+
}
66+
67+
#[cfg(feature = "cloud_events")]
68+
{
69+
let grpc_client_config = EventMeshGrpcClientConfig::new();
70+
let mut producer = GrpcEventMeshProducer::new(grpc_client_config);
71+
info!("Publish Message to EventMesh........");
72+
let message = EventBuilderV10::new()
73+
.id("my_event.my_application")
74+
.source("http://localhost:8080")
75+
.subject("mxsm")
76+
.ty("example.demo")
77+
.time(Utc::now())
78+
.data(ProtocolKey::CLOUDEVENT_CONTENT_TYPE, "{\"aaa\":\"1111\"}")
79+
.build()?;
80+
let response = producer.publish(message.clone()).await?;
81+
info!("Publish Message to EventMesh return result: {}", response);
82+
83+
//Publish batch message
84+
info!("Publish batch message to EventMesh........");
85+
let messages = vec![message.clone(), message.clone(), message.clone()];
86+
let response = producer.publish_batch(messages).await?;
87+
info!(
88+
"Publish batch message to EventMesh return result: {}",
89+
response
90+
);
91+
92+
//Publish batch message
93+
info!("Publish request reply message to EventMesh........");
94+
let response = producer.request_reply(message.clone(), 1000).await?;
95+
info!(
96+
"Publish request reply message to EventMesh return result: {}",
97+
response
98+
);
99+
}
100+
60101
Ok(())
61102
}

eventmesh-sdks/eventmesh-sdk-rust/rust-toolchain.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,4 @@
1818

1919
[toolchain]
2020
# TODO: we can remove this toolchain file when AFIT and RPITIT hits stable.
21-
channel = "nightly"
21+
channel = "nightly-x86_64-pc-windows-msvc"

eventmesh-sdks/eventmesh-sdk-rust/src/common.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
pub mod constants;
2121

2222
/// Eventmesh message utilities.
23-
pub mod eventmesh_message_utils;
23+
pub mod grpc_eventmesh_message_utils;
2424

2525
/// Local IP helper.
2626
pub(crate) mod local_ip;

0 commit comments

Comments
 (0)