Skip to content

Commit 8bc7c4d

Browse files
authored
feat: get rid of PublishedMessage derive (#18)
* feat: get rid of PublishedMessage derive * fix * fixes
1 parent 840c38d commit 8bc7c4d

File tree

20 files changed

+139
-251
lines changed

20 files changed

+139
-251
lines changed

.blackbox/blackbox-files.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
pub-sub-client-tests/secrets/active-road-365118-2eca6b7b8fd9.json
1+
secrets/active-road-365118-2eca6b7b8fd9.json

.github/workflows/ci.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,5 +44,5 @@ jobs:
4444
env:
4545
GCP_SERVICE_ACCOUNT: ${{ secrets.GCP_SERVICE_ACCOUNT }}
4646
run: |
47-
printenv GCP_SERVICE_ACCOUNT > pub-sub-client-tests/secrets/active-road-365118-2eca6b7b8fd9.json
47+
printenv GCP_SERVICE_ACCOUNT > secrets/active-road-365118-2eca6b7b8fd9.json
4848
just test

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ target
33
/.blackbox/pubring.gpg~
44
/.blackbox/pubring.kbx~
55
/.blackbox/secring.gpg
6-
/pub-sub-client-tests/secrets/active-road-365118-2eca6b7b8fd9.json
6+
active-road-365118-2eca6b7b8fd9.json

Cargo.toml

Lines changed: 17 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,6 @@
1-
[workspace]
2-
members = [
3-
"pub-sub-client",
4-
"pub-sub-client-derive",
5-
"pub-sub-client-tests",
6-
]
7-
resolver = "2"
8-
9-
[workspace.package]
10-
# No use to define version here, because cargo release ignores it!
11-
# version = "0.10.1-alpha.0"
1+
[package]
2+
name = "pub-sub-client"
3+
version = "0.11.1-alpha.0"
124
edition = "2021"
135
description = "Google Cloud Pub/Sub client library"
146
authors = [ "Heiko Seeberger <[email protected]>" ]
@@ -17,23 +9,21 @@ readme = "README.md"
179
homepage = "https://github.com/hseeberger/pub-sub-client"
1810
repository = "https://github.com/hseeberger/pub-sub-client"
1911
documentation = "https://github.com/hseeberger/pub-sub-client"
20-
publish = true
2112

22-
[workspace.dependencies]
13+
[dependencies]
14+
base64 = { version = "0.21" }
15+
goauth = { version = "0.13" }
16+
reqwest = { version = "0.11", features = [ "json" ] }
17+
serde = { version = "1.0", features = [ "derive" ] }
18+
serde_json = { version = "1.0" }
19+
smpl_jwt = { version = "0.7" }
20+
thiserror = { version = "1.0" }
21+
time = { version = "0.3", features = [ "serde-well-known" ] }
22+
tracing = { version = "0.1" }
23+
24+
[dev-dependencies]
2325
anyhow = { version = "1.0" }
24-
base64 = { version = "0.21" }
25-
goauth = { version = "0.13" }
26-
proc-macro2 = { version = "1.0" }
27-
quote = { version = "1.0" }
28-
reqwest = { version = "0.11" }
29-
serde = { version = "1.0" }
30-
serde_json = { version = "1.0" }
31-
smpl_jwt = { version = "0.7" }
32-
syn = { version = "2.0" }
3326
testcontainers = { version = "0.15" }
3427
testcontainers-modules = { version = "0.1", features = [ "google_cloud_sdk_emulators" ] }
35-
thiserror = { version = "1.0" }
36-
time = { version = "0.3" }
37-
tokio = { version = "1" }
38-
tracing = { version = "0.1" }
39-
tracing-subscriber = { version = "0.3" }
28+
tokio = { version = "1", features = [ "macros", "rt-multi-thread" ] }
29+
tracing-subscriber = { version = "0.3", features = [ "env-filter", "fmt", "json" ] }

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
Google Cloud Pub/Sub client library in [Rust](https://www.rust-lang.org/). Currently publishing, pulling and acknowledging are supported, but no management tasks like creating topics or subscriptions.
1515

16-
Messages can either be published/pulled as raw or, if the payload is JSON data, serialized from/deserialized into domain messages (structs or enums) via [Serde](https://serde.rs/) and [Serde JSON](https://docs.serde.rs/serde_json). Both raw `ReceivedMessages` and "typed" `PulledMessages` expose metadata like message ID, acknowledge ID, attributes, etc.
16+
Messages can either be published/pulled as raw or, if the payload is JSON data, serialized from/deserialized into domain messages (structs or enums) via [Serde](https://serde.rs/) and [Serde JSON](https://docs.serde.rs/serde_json). Both raw `RawPulledMessage`s and "typed" `PulledMessage`s expose metadata like message ID, acknowledge ID, attributes, etc.
1717

1818
Aside from straight forward deserialization it is also possible to first transform the pulled JSON values before deserizlizing into domain messages which allows for generally adjusting the JSON structure as well as schema evolution.
1919

@@ -22,13 +22,13 @@ Aside from straight forward deserialization it is also possible to first transfo
2222
Typically we want to use domain message:
2323

2424
``` rust
25-
#[derive(Debug, Deserialize, Serialize, PublishedMessage)]
25+
#[derive(Debug, Serialize, Deserialize)]
2626
struct Message {
2727
text: String,
2828
}
2929
```
3030

31-
In order to publish `Message`, we need to derive `Serialize` and `PublishedMessage` and to pull it we need to derive `Deserialize`.
31+
To publish `Message` we need to derive `Serialize` and to pull it we need to derive `Deserialize`.
3232

3333
First create a `PubSubClient`, giving the path to a service account key file and the duration to refresh access tokens before they expire:
3434

pub-sub-client-tests/examples/simple.rs renamed to examples/simple.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
use pub_sub_client::{Error, PubSubClient, PublishedMessage};
1+
use pub_sub_client::{Error, PubSubClient};
22
use serde::{Deserialize, Serialize};
33
use std::{env, error::Error as _, time::Duration};
44

55
const TOPIC_ID: &str = "test";
66
const SUBSCRIPTION_ID: &str = "test";
77

8-
#[derive(Debug, Deserialize, Serialize, PublishedMessage)]
8+
#[derive(Debug, Serialize, Deserialize)]
99
struct Message {
1010
text: String,
1111
}

pub-sub-client-tests/examples/transform.rs renamed to examples/transform.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
use anyhow::anyhow;
22
use base64::{engine::general_purpose::STANDARD, Engine};
33
use pub_sub_client::{
4-
Error, PubSubClient, PublishedMessage, PulledMessage, RawPublishedMessage,
5-
RawPulledMessageEnvelope,
4+
Error, PubSubClient, PulledMessage, RawPublishedMessage, RawPulledMessageEnvelope,
65
};
76
use serde::{Deserialize, Serialize};
87
use serde_json::{json, Value};
@@ -11,7 +10,7 @@ use std::{collections::HashMap, env, error::Error as _, time::Duration};
1110
const TOPIC_ID: &str = "test";
1211
const SUBSCRIPTION_ID: &str = "test";
1312

14-
#[derive(Debug, Deserialize, Serialize, PublishedMessage)]
13+
#[derive(Debug, Serialize, Deserialize)]
1514
#[serde(tag = "type")]
1615
#[allow(dead_code)]
1716
enum Message {

pub-sub-client-derive/Cargo.toml

Lines changed: 0 additions & 20 deletions
This file was deleted.

pub-sub-client-derive/src/lib.rs

Lines changed: 0 additions & 27 deletions
This file was deleted.

pub-sub-client-tests/Cargo.toml

Lines changed: 0 additions & 24 deletions
This file was deleted.

0 commit comments

Comments
 (0)