Update to zenoh 1.0.
This commit is contained in:
commit
628250161c
|
|
@ -0,0 +1 @@
|
||||||
|
/target
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,16 @@
|
||||||
|
[package]
|
||||||
|
name = "zenoh-exp"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
zenoh = { git="https://github.com/eclipse-zenoh/zenoh.git", branch = "main" }
|
||||||
|
tokio = { version = "1", features = ["full"] }
|
||||||
|
prost = { version = "0.13" }
|
||||||
|
ciborium = { version = "0.2" }
|
||||||
|
serde = { version = "1.0" }
|
||||||
|
|
||||||
|
[build-dependencies]
|
||||||
|
prost-build = { version = "0.13" }
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
use std::io::Result;
|
||||||
|
fn main() -> Result<()> {
|
||||||
|
let mut config = prost_build::Config::new();
|
||||||
|
config.type_attribute(".", "#[derive(serde::Serialize)]");
|
||||||
|
config.type_attribute(".", "#[derive(serde::Deserialize)]");
|
||||||
|
config.type_attribute(".", "#[serde(rename_all = \"camelCase\")]");
|
||||||
|
config.compile_protos(&["src/proto/parrot.proto"], &["src/proto"])?;
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
// Copyright James Pace 2022
|
||||||
|
use std::time::Duration;
|
||||||
|
use prost::Message;
|
||||||
|
|
||||||
|
pub mod j7s {
|
||||||
|
include!(concat!(env!("OUT_DIR"), "/j7s.parrot.rs"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tokio::main]
|
||||||
|
async fn main() {
|
||||||
|
let config = zenoh::Config::default();
|
||||||
|
let session = zenoh::open(config).await.unwrap();
|
||||||
|
let publisher = session.declare_publisher("test").await.unwrap();
|
||||||
|
|
||||||
|
loop {
|
||||||
|
let mut message = j7s::Message::default();
|
||||||
|
message.sender = "pub".to_string();
|
||||||
|
message.message = "Hi sub!".to_string();
|
||||||
|
publisher.put(encode(&message)).await.unwrap();
|
||||||
|
tokio::time::sleep(Duration::from_secs(1)).await;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn encode(message: &j7s::Message) -> Vec<u8> {
|
||||||
|
let mut buf = Vec::new();
|
||||||
|
buf.reserve(message.encoded_len());
|
||||||
|
message.encode(&mut buf).unwrap();
|
||||||
|
|
||||||
|
buf
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
// Copyright James Pace 2022
|
||||||
|
use prost::Message;
|
||||||
|
use std::io::Cursor;
|
||||||
|
use std::borrow::Cow;
|
||||||
|
|
||||||
|
pub mod j7s {
|
||||||
|
include!(concat!(env!("OUT_DIR"), "/j7s.parrot.rs"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tokio::main]
|
||||||
|
async fn main() {
|
||||||
|
let config = zenoh::Config::default();
|
||||||
|
let session = zenoh::open(config).await.unwrap();
|
||||||
|
let subscriber = session.declare_subscriber("test").await.unwrap();
|
||||||
|
|
||||||
|
loop {
|
||||||
|
let sample = subscriber.recv_async().await.unwrap();
|
||||||
|
let payload = sample.payload();
|
||||||
|
let bytes = payload.deserialize::<Cow<[u8]>>().unwrap();
|
||||||
|
let message = j7s::Message::decode(Cursor::new(bytes)).unwrap();
|
||||||
|
|
||||||
|
println!(
|
||||||
|
"Kind: {} Key: {} Value: {:?}",
|
||||||
|
sample.kind(),
|
||||||
|
sample.key_expr().as_str(),
|
||||||
|
message
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
syntax = "proto3";
|
||||||
|
|
||||||
|
package j7s.parrot;
|
||||||
|
|
||||||
|
message Message {
|
||||||
|
string sender = 1;
|
||||||
|
string message = 2;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue