Skip to content

Commit 6301ee4

Browse files
authored
refactor!: dapr no longer requires protoc or tonic_build (#206)
* refactor!: dapr no longer requires protoc or tonic_build The dapr crate no longer requires tonic_build or protoc to build. The examples have been moved into a separate crate. proto-gen is now compiling the dapr and example protos. Signed-off-by: mikeee <hey@mike.ee> * chore: fmt run Signed-off-by: mikeee <hey@mike.ee> * chore: update example names Signed-off-by: mikeee <hey@mike.ee> * fix: add a build step Signed-off-by: mikeee <hey@mike.ee> * test: remove ci build step and add it to the examples Signed-off-by: mikeee <hey@mike.ee> * fix: update validation workflows Signed-off-by: mikeee <hey@mike.ee> * tests: tweaks to timings Signed-off-by: mikeee <hey@mike.ee> --------- Signed-off-by: mikeee <hey@mike.ee>
1 parent 7aef43a commit 6301ee4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+9298
-228
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ jobs:
8282
with:
8383
version: ${{ env.PROTOC_VERSION }}
8484
- uses: actions/checkout@v2
85-
- name: cargo publish macros
86-
run: cargo publish --manifest-path macros/Cargo.toml --token ${{ env.CARGO_TOKEN }}
87-
- name: cargo publish
85+
- name: cargo publish dapr-macros
86+
run: cargo publish --manifest-path dapr-macros/Cargo.toml --token ${{ env.CARGO_TOKEN }}
87+
- name: cargo publish dapr
8888
run: cargo publish --token ${{ env.CARGO_TOKEN }}

.github/workflows/validate-examples.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -294,9 +294,6 @@ jobs:
294294
python -m pip install --upgrade pip
295295
pip install mechanical-markdown
296296
297-
- name: Cargo Build Examples
298-
run: cargo build --examples
299-
300297
- name: Dapr version
301298
run: |
302299
dapr version

Cargo.toml

Lines changed: 8 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -1,108 +1,8 @@
1-
[package]
2-
name = "dapr"
3-
version = "0.15.0"
4-
authors = ["dapr.io"]
5-
edition = "2021"
6-
license = "Apache-2.0"
7-
repository = "https://github.com/dapr/rust-sdk"
8-
description = "Rust SDK for dapr"
9-
readme = "README.md"
10-
keywords = ["microservices", "dapr"]
11-
12-
[dependencies]
13-
dapr-macros = { version = "0.15.0", path = "macros" }
14-
futures = "0.3"
15-
tonic = "0.11.0"
16-
prost = "0.12.3"
17-
bytes = "1"
18-
prost-types = "0.12.3"
19-
async-trait = "0.1"
20-
env_logger = "0.11.2"
21-
log = "0.4"
22-
serde = { version = "1.0", features = ["derive"] }
23-
serde_json = "1.0"
24-
axum = "0.7.4"
25-
tokio = { version = "1.29", features = ["sync"] }
26-
tokio-util = { version = "0.7.10", features = ["io"] }
27-
chrono = "0.4.38"
28-
base64 = "0.22.1"
29-
30-
[build-dependencies]
31-
tonic-build = "0.11.0"
32-
33-
[dev-dependencies]
34-
axum-test = "15.0.1"
35-
once_cell = "1.18.0"
36-
tokio = { version = "1", features = ["full"] }
37-
uuid = { version = "1.4.0", features = ["v4"] }
38-
dapr = { path = "./" }
39-
tokio-test = "0.4.2"
40-
tokio-stream = { version = "0.1" }
41-
42-
[[example]]
43-
name = "actor-client"
44-
path = "examples/actors/client.rs"
45-
46-
[[example]]
47-
name = "actor-server"
48-
path = "examples/actors/server.rs"
49-
50-
[[example]]
51-
name = "client"
52-
path = "examples/client/client.rs"
53-
54-
[[example]]
55-
name = "configuration"
56-
path = "examples/configuration/main.rs"
57-
58-
[[example]]
59-
name = "crypto"
60-
path = "examples/crypto/main.rs"
61-
62-
[[example]]
63-
name = "invoke-grpc-client"
64-
path = "examples/invoke/grpc/client.rs"
65-
66-
[[example]]
67-
name = "invoke-grpc-server"
68-
path = "examples/invoke/grpc/server.rs"
69-
70-
[[example]]
71-
name = "invoke-grpc-proxying-client"
72-
path = "examples/invoke/grpc-proxying/client.rs"
73-
74-
[[example]]
75-
name = "invoke-grpc-proxying-server"
76-
path = "examples/invoke/grpc-proxying/server.rs"
77-
78-
[[example]]
79-
name = "jobs"
80-
path = "examples/jobs/jobs.rs"
81-
82-
[[example]]
83-
name = "publisher"
84-
path = "examples/pubsub/publisher.rs"
85-
86-
[[example]]
87-
name = "subscriber"
88-
path = "examples/pubsub/subscriber.rs"
89-
90-
[[example]]
91-
name = "output-bindings"
92-
path = "examples/bindings/output.rs"
93-
94-
[[example]]
95-
name = "input-bindings"
96-
path = "examples/bindings/input.rs"
97-
98-
[[example]]
99-
name = "query_state_q1"
100-
path = "examples/query_state/query1.rs"
101-
102-
[[example]]
103-
name = "query_state_q2"
104-
path = "examples/query_state/query2.rs"
105-
106-
[[example]]
107-
name = "secrets-bulk"
108-
path = "examples/secrets-bulk/app.rs"
1+
[workspace]
2+
members = [
3+
"dapr",
4+
"dapr-macros",
5+
"examples",
6+
"proto-gen",
7+
]
8+
resolver = "2"

build.rs

Lines changed: 0 additions & 15 deletions
This file was deleted.
File renamed without changes.
File renamed without changes.

macros/src/lib.rs renamed to dapr-macros/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ use std::iter;
33

44
use proc_macro2::TokenTree;
55
use quote::{format_ident, quote};
6-
use syn::{Ident, LitStr, parse_macro_input};
76
use syn::parse::{Parse, ParseStream};
7+
use syn::{parse_macro_input, Ident, LitStr};
88

99
macro_rules! derive_parse {(
1010
@derive_only
@@ -236,4 +236,4 @@ pub fn topic(args: TokenStream, input: TokenStream) -> TokenStream {
236236
};
237237

238238
tokens.into()
239-
}
239+
}

dapr/Cargo.toml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
[package]
2+
name = "dapr"
3+
version = "0.15.0"
4+
authors = ["dapr.io"]
5+
edition = "2021"
6+
license = "Apache-2.0"
7+
repository = "https://github.com/dapr/rust-sdk"
8+
description = "Rust SDK for dapr"
9+
readme = "../README.md"
10+
keywords = ["microservices", "dapr"]
11+
12+
[dependencies]
13+
dapr-macros = { version = "0.15.0", path = "../dapr-macros" }
14+
futures = "0.3"
15+
tonic = "0.11.0"
16+
prost = "0.12.3"
17+
bytes = "1"
18+
prost-types = "0.12.3"
19+
async-trait = "0.1"
20+
env_logger = "0.11.2"
21+
log = "0.4"
22+
serde = { version = "1.0", features = ["derive"] }
23+
serde_json = "1.0"
24+
axum = "0.7.4"
25+
tokio = { version = "1.29", features = ["sync"] }
26+
tokio-util = { version = "0.7.10", features = ["io"] }
27+
chrono = "0.4.38"
28+
base64 = "0.22.1"
29+
30+
[dev-dependencies]
31+
axum-test = "15.0.1"
32+
once_cell = "1.18.0"
33+
tokio = { version = "1", features = ["full"] }
34+
uuid = { version = "1.4.0", features = ["v4"] }
35+
dapr = { path = "./" }
36+
tokio-test = "0.4.2"
37+
tokio-stream = { version = "0.1" }

src/appcallback.rs renamed to dapr/src/appcallback.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1+
use crate::dapr;
2+
use crate::dapr::proto::runtime::v1::app_callback_server::AppCallback;
3+
use crate::dapr::proto::{common, runtime};
14
use std::collections::HashMap;
25
use tonic::{Code, Request, Response, Status};
36

4-
use crate::dapr::dapr::proto::runtime::v1::app_callback_server::AppCallback;
5-
use crate::dapr::dapr::proto::{common, runtime};
6-
use crate::dapr::*;
7-
87
/// InvokeRequest is the message to invoke a method with the data.
98
pub type InvokeRequest = dapr::proto::common::v1::InvokeRequest;
109

src/client.rs renamed to dapr/src/client.rs

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
use std::collections::HashMap;
2-
use std::fmt::Debug;
32

43
use async_trait::async_trait;
54
use futures::StreamExt;
@@ -11,7 +10,7 @@ use tonic::codegen::tokio_stream;
1110
use tonic::{transport::Channel as TonicChannel, Request};
1211
use tonic::{Status, Streaming};
1312

14-
use crate::dapr::dapr::proto::{common::v1 as common_v1, runtime::v1 as dapr_v1};
13+
use crate::dapr::proto::{common::v1 as common_v1, runtime::v1 as dapr_v1};
1514
use crate::error::Error;
1615

1716
#[derive(Clone)]
@@ -876,39 +875,39 @@ pub type UnsubscribeConfigurationResponse = dapr_v1::UnsubscribeConfigurationRes
876875
pub type TonicClient = dapr_v1::dapr_client::DaprClient<TonicChannel>;
877876

878877
/// Encryption gRPC request
879-
pub type EncryptRequest = crate::dapr::dapr::proto::runtime::v1::EncryptRequest;
878+
pub type EncryptRequest = crate::dapr::proto::runtime::v1::EncryptRequest;
880879

881880
/// Decrypt gRPC request
882-
pub type DecryptRequest = crate::dapr::dapr::proto::runtime::v1::DecryptRequest;
881+
pub type DecryptRequest = crate::dapr::proto::runtime::v1::DecryptRequest;
883882

884883
/// Encryption request options
885-
pub type EncryptRequestOptions = crate::dapr::dapr::proto::runtime::v1::EncryptRequestOptions;
884+
pub type EncryptRequestOptions = crate::dapr::proto::runtime::v1::EncryptRequestOptions;
886885

887886
/// Decryption request options
888-
pub type DecryptRequestOptions = crate::dapr::dapr::proto::runtime::v1::DecryptRequestOptions;
887+
pub type DecryptRequestOptions = crate::dapr::proto::runtime::v1::DecryptRequestOptions;
889888

890889
/// The basic job structure
891-
pub type Job = crate::dapr::dapr::proto::runtime::v1::Job;
890+
pub type Job = crate::dapr::proto::runtime::v1::Job;
892891

893892
/// A request to schedule a job
894-
pub type ScheduleJobRequest = crate::dapr::dapr::proto::runtime::v1::ScheduleJobRequest;
893+
pub type ScheduleJobRequest = crate::dapr::proto::runtime::v1::ScheduleJobRequest;
895894

896895
/// A response from a schedule job request
897-
pub type ScheduleJobResponse = crate::dapr::dapr::proto::runtime::v1::ScheduleJobResponse;
896+
pub type ScheduleJobResponse = crate::dapr::proto::runtime::v1::ScheduleJobResponse;
898897

899898
/// A request to get a job
900-
pub type GetJobRequest = crate::dapr::dapr::proto::runtime::v1::GetJobRequest;
899+
pub type GetJobRequest = crate::dapr::proto::runtime::v1::GetJobRequest;
901900

902901
/// A response from a get job request
903-
pub type GetJobResponse = crate::dapr::dapr::proto::runtime::v1::GetJobResponse;
902+
pub type GetJobResponse = crate::dapr::proto::runtime::v1::GetJobResponse;
904903

905904
/// A request to delete a job
906-
pub type DeleteJobRequest = crate::dapr::dapr::proto::runtime::v1::DeleteJobRequest;
905+
pub type DeleteJobRequest = crate::dapr::proto::runtime::v1::DeleteJobRequest;
907906

908907
/// A response from a delete job request
909-
pub type DeleteJobResponse = crate::dapr::dapr::proto::runtime::v1::DeleteJobResponse;
908+
pub type DeleteJobResponse = crate::dapr::proto::runtime::v1::DeleteJobResponse;
910909

911-
type StreamPayload = crate::dapr::dapr::proto::common::v1::StreamPayload;
910+
type StreamPayload = crate::dapr::proto::common::v1::StreamPayload;
912911
impl<K> From<(K, Vec<u8>)> for common_v1::StateItem
913912
where
914913
K: Into<String>,
@@ -930,7 +929,6 @@ impl<T: AsyncRead> ReaderStream<T> {
930929
}
931930
}
932931

933-
#[derive(Debug)]
934932
pub struct JobBuilder {
935933
schedule: Option<String>,
936934
data: Option<Any>,

0 commit comments

Comments
 (0)