feat: send events as etf over rmq

Signed-off-by: Zomatree <me@zomatree.live>
This commit is contained in:
Zomatree
2026-08-05 04:05:22 +01:00
parent a41b291504
commit 01b384af70
4 changed files with 42 additions and 2 deletions

38
Cargo.lock generated
View File

@@ -2615,6 +2615,43 @@ dependencies = [
"serde",
]
[[package]]
name = "erltf"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c4882da31a311a37fbc2a1cefd6162decd3fce8d2339d275465dd820e849db3e"
dependencies = [
"bytes",
"flate2",
"log",
"nom 8.0.0",
"serde",
"thiserror 2.0.18",
]
[[package]]
name = "erltf_serde"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c208fe76b4a4045f30caf1dabc7c1ad4cf297bcb47e1b97bb250ebd44a9e817"
dependencies = [
"erltf",
"erltf_serde_derive",
"serde",
"thiserror 2.0.18",
]
[[package]]
name = "erltf_serde_derive"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c4d2b684bfcc1ec8f801c0793f529fd60a138cd42e323f4f0cb8ba20f80eab3b"
dependencies = [
"proc-macro2",
"quote 1.0.46",
"syn 2.0.118",
]
[[package]]
name = "errno"
version = "0.3.14"
@@ -7293,6 +7330,7 @@ dependencies = [
"bson",
"deadqueue",
"decancer",
"erltf_serde",
"futures",
"handlebars",
"indexmap 2.14.0",

View File

@@ -98,6 +98,7 @@ serde_json = "1.0.79"
rmp-serde = "1.0.0"
serde = { version = "1", features = ["derive"] }
strum_macros = "0.26.4"
erltf_serde = "0.16.0"
# MongoDB
bson = { version = "2.1.0" }

View File

@@ -62,6 +62,7 @@ serde_json = { workspace = true }
revolt_optional_struct = { workspace = true }
serde = { workspace = true }
iso8601-timestamp = { workspace = true, features = ["serde", "bson"] }
erltf_serde = { workspace = true, features = ["elixir-interop"] }
# Events
redis-kiss = { workspace = true, default-features = false, features = ["tokio-runtime"] }

View File

@@ -406,7 +406,7 @@ impl AMQP {
config.rabbit.default_exchange.clone().into(),
config.rabbit.queues.events.into(),
BasicPublishOptions::default(),
&serde_json::to_vec(event).unwrap(),
&erltf_serde::to_bytes(event).unwrap(),
BasicProperties::default().with_headers(headers),
)
.await?;
@@ -438,7 +438,7 @@ impl AMQP {
config.rabbit.default_exchange.clone().into(),
config.rabbit.queues.events.into(),
BasicPublishOptions::default(),
&serde_json::to_vec(event).unwrap(),
&erltf_serde::to_bytes(event).unwrap(),
BasicProperties::default().with_headers(headers),
)
.await?;