From a7d09cb0623ea557c5bb8f28b06125c487627296 Mon Sep 17 00:00:00 2001 From: scbj Date: Mon, 2 Jun 2025 16:05:05 +0200 Subject: [PATCH] (rust) `prost`: added simple protobuf sample for testing --- rust/Cargo.toml | 2 ++ rust/proto/Cargo.toml | 11 +++++++++++ rust/proto/build.rs | 6 ++++++ rust/proto/src/lib.rs | 5 +++++ rust/proto/src/protest.proto | 19 +++++++++++++++++++ rust/src/main.rs | 17 +---------------- 6 files changed, 44 insertions(+), 16 deletions(-) create mode 100644 rust/proto/Cargo.toml create mode 100644 rust/proto/build.rs create mode 100644 rust/proto/src/lib.rs create mode 100644 rust/proto/src/protest.proto diff --git a/rust/Cargo.toml b/rust/Cargo.toml index 667e205..a6eacc4 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -12,4 +12,6 @@ dirs = "5.0.1" sqlx = { version = "0.8", features = [ "runtime-tokio", "sqlite", "chrono" ] } thiserror = "2.0.12" tokio = { version = "1.42.0", features = ["full", "rt"] } +prost = "0.13" +proto = { path = "proto" } diff --git a/rust/proto/Cargo.toml b/rust/proto/Cargo.toml new file mode 100644 index 0000000..9d2b4a8 --- /dev/null +++ b/rust/proto/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "proto" +build = "build.rs" +version = "0.1.0" +edition = "2021" + +[dependencies] +prost = "0.13" + +[build-dependencies] +prost-build = "0.13" diff --git a/rust/proto/build.rs b/rust/proto/build.rs new file mode 100644 index 0000000..cf3ea0b --- /dev/null +++ b/rust/proto/build.rs @@ -0,0 +1,6 @@ +use std::io::Result; + +fn main() -> Result<()> { + prost_build::compile_protos(&["src/protest.proto"], &["src/"])?; + Ok(()) +} diff --git a/rust/proto/src/lib.rs b/rust/proto/src/lib.rs new file mode 100644 index 0000000..64cd13f --- /dev/null +++ b/rust/proto/src/lib.rs @@ -0,0 +1,5 @@ +// pub mod protest; + +pub mod protest { + include!(concat!(env!("OUT_DIR"), "/protest.rs")); +} diff --git a/rust/proto/src/protest.proto b/rust/proto/src/protest.proto new file mode 100644 index 0000000..3bc5ab9 --- /dev/null +++ b/rust/proto/src/protest.proto @@ -0,0 +1,19 @@ +syntax = "proto3"; + +package protest; + +message Payload { + /* + * The package index of the given message, so which part of the message is + * currently being loaded. + */ + uint64 index = 1; + /* + * The total block count. + */ + uint64 blocks = 2; + /* + * The resulting payload to be loaded + */ + bytes payload = 3; +} diff --git a/rust/src/main.rs b/rust/src/main.rs index fc5c081..b1bb849 100644 --- a/rust/src/main.rs +++ b/rust/src/main.rs @@ -4,22 +4,6 @@ use chrono::{ DateTime, Local, }; -use clap::{ - Args, - Parser, - Subcommand -}; -use sqlx::{ - migrate::MigrateDatabase, - query, - query_as, - Row, - sqlite::{ - SqlitePool, - SqlitePoolOptions, - }, - Sqlite, -}; use tokio::{ fs, io::{ @@ -35,6 +19,7 @@ use tokio::{ sleep, }, }; +use proto::protest::Payload; #[tokio::main] async fn main() -> anyhow::Result<()> {