From f9500ca5ff6fbdd416adc5c9d81df52f0aeb57b2 Mon Sep 17 00:00:00 2001 From: Grant Limberg Date: Tue, 5 Aug 2025 16:05:51 -0700 Subject: [PATCH] fix dependencies when temporal isn't needed --- rustybits/Cargo.lock | 364 +++++++++++++++++++++++++++++++- rustybits/Cargo.toml | 16 +- rustybits/src/lib.rs | 2 + rustybits/src/pubsub/mod.rs | 11 + rustybits/src/smeeclient/mod.rs | 2 - 5 files changed, 382 insertions(+), 13 deletions(-) create mode 100644 rustybits/src/pubsub/mod.rs diff --git a/rustybits/Cargo.lock b/rustybits/Cargo.lock index 86b692b3f..cf3c6acea 100644 --- a/rustybits/Cargo.lock +++ b/rustybits/Cargo.lock @@ -103,6 +103,39 @@ version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" +[[package]] +name = "async-channel" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" +dependencies = [ + "concurrent-queue", + "event-listener", + "futures-core", +] + +[[package]] +name = "async-stream" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "async-trait" version = "0.1.88" @@ -147,7 +180,7 @@ dependencies = [ "rustversion", "serde", "sync_wrapper 1.0.2", - "tower", + "tower 0.5.2", "tower-layer", "tower-service", ] @@ -348,6 +381,15 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "const-oid" version = "0.9.6" @@ -389,6 +431,15 @@ dependencies = [ "libc", ] +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + [[package]] name = "crossbeam-channel" version = "0.5.15" @@ -751,6 +802,12 @@ dependencies = [ "windows-sys 0.60.2", ] +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + [[package]] name = "fastrand" version = "2.3.0" @@ -779,6 +836,16 @@ version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" +[[package]] +name = "flate2" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + [[package]] name = "fnv" version = "1.0.7" @@ -927,6 +994,85 @@ dependencies = [ "slab", ] +[[package]] +name = "gcloud-auth" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4089aeec499899f6f1309803279763c34d898ca86c1a3e4616cba3ca6bce34b7" +dependencies = [ + "async-trait", + "base64 0.22.1", + "gcloud-metadata", + "home", + "jsonwebtoken", + "reqwest 0.12.22", + "serde", + "serde_json", + "thiserror 1.0.69", + "time", + "token-source", + "tokio", + "tracing", + "urlencoding", +] + +[[package]] +name = "gcloud-gax" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb0a39057a0654184e074ddefb734c9a326ba468663b8f329c95f0069b5ccdb5" +dependencies = [ + "http 1.3.1", + "thiserror 1.0.69", + "token-source", + "tokio", + "tokio-retry2", + "tonic", + "tower 0.4.13", + "tracing", +] + +[[package]] +name = "gcloud-googleapis" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501459a508e7887cfedc45a45ee41602ac1f66d2b61deb05f1c2256bf2faf46d" +dependencies = [ + "prost", + "prost-types", + "tonic", +] + +[[package]] +name = "gcloud-metadata" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d575310b4546530f6b21ee000c20155f11f9291fa0b67ea0949fd48aa49ed70" +dependencies = [ + "reqwest 0.12.22", + "thiserror 1.0.69", + "tokio", +] + +[[package]] +name = "gcloud-pubsub" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1d55e2652753753d902a84c56613b9ae35a36416d94e56c1268764bc7e79f05" +dependencies = [ + "async-channel", + "async-stream", + "gcloud-auth", + "gcloud-gax", + "gcloud-googleapis", + "prost-types", + "thiserror 1.0.69", + "token-source", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "generic-array" version = "0.14.7" @@ -1096,6 +1242,15 @@ dependencies = [ "digest", ] +[[package]] +name = "home" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +dependencies = [ + "windows-sys 0.59.0", +] + [[package]] name = "http" version = "0.2.12" @@ -1235,12 +1390,29 @@ dependencies = [ "tokio-native-tls", ] +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper 1.6.0", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", +] + [[package]] name = "hyper-util" version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f66d5bd4c6f02bf0542fad85d626775bab9258cf795a4256dcaf3161114d1df" dependencies = [ + "base64 0.22.1", "bytes", "futures-channel", "futures-core", @@ -1248,7 +1420,9 @@ dependencies = [ "http 1.3.1", "http-body 1.0.1", "hyper 1.6.0", + "ipnet", "libc", + "percent-encoding", "pin-project-lite", "socket2", "tokio", @@ -1450,6 +1624,16 @@ version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +[[package]] +name = "iri-string" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +dependencies = [ + "memchr", + "serde", +] + [[package]] name = "is_terminal_polyfill" version = "1.70.1" @@ -1490,6 +1674,21 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "jsonwebtoken" +version = "9.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a87cc7a48537badeae96744432de36f4be2b4a34a05a5ef32e9dd8a1c169dde" +dependencies = [ + "base64 0.22.1", + "js-sys", + "pem", + "ring", + "serde", + "serde_json", + "simple_asn1", +] + [[package]] name = "jwt" version = "0.16.0" @@ -1689,6 +1888,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + [[package]] name = "num-bigint-dig" version = "0.8.4" @@ -1753,7 +1962,7 @@ dependencies = [ "getrandom 0.2.16", "http 0.2.12", "rand 0.8.5", - "reqwest", + "reqwest 0.11.27", "serde", "serde_json", "serde_path_to_error", @@ -1935,6 +2144,16 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "pem" +version = "3.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" +dependencies = [ + "base64 0.22.1", + "serde", +] + [[package]] name = "pem-rfc7468" version = "0.7.0" @@ -2405,7 +2624,7 @@ dependencies = [ "http 0.2.12", "http-body 0.4.6", "hyper 0.14.32", - "hyper-tls", + "hyper-tls 0.5.0", "ipnet", "js-sys", "log", @@ -2430,6 +2649,44 @@ dependencies = [ "winreg", ] +[[package]] +name = "reqwest" +version = "0.12.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" +dependencies = [ + "base64 0.22.1", + "bytes", + "encoding_rs", + "futures-core", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "hyper 1.6.0", + "hyper-tls 0.6.0", + "hyper-util", + "js-sys", + "log", + "mime", + "native-tls", + "percent-encoding", + "pin-project-lite", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 1.0.2", + "tokio", + "tokio-native-tls", + "tower 0.5.2", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "rfc6979" version = "0.4.0" @@ -2608,9 +2865,10 @@ dependencies = [ "base64 0.21.7", "bytes", "cbindgen", + "gcloud-pubsub", "jwt", "openidconnect", - "reqwest", + "reqwest 0.11.27", "serde", "temporal-client", "temporal-sdk", @@ -2882,6 +3140,18 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "simple_asn1" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" +dependencies = [ + "num-bigint", + "num-traits", + "thiserror 2.0.12", + "time", +] + [[package]] name = "siphasher" version = "1.0.1" @@ -2984,6 +3254,9 @@ name = "sync_wrapper" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] [[package]] name = "synstructure" @@ -3069,7 +3342,7 @@ dependencies = [ "thiserror 2.0.12", "tokio", "tonic", - "tower", + "tower 0.5.2", "tracing", "url", "uuid", @@ -3282,6 +3555,15 @@ dependencies = [ "zerovec", ] +[[package]] +name = "token-source" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75746ae15bef509f21039a652383104424208fdae172a964a8930858b9a78412" +dependencies = [ + "async-trait", +] + [[package]] name = "tokio" version = "1.46.1" @@ -3323,6 +3605,16 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-retry2" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1264d076dd34560544a2799e40e457bd07c43d30f4a845686b031bcd8455c84f" +dependencies = [ + "pin-project", + "tokio", +] + [[package]] name = "tokio-rustls" version = "0.26.2" @@ -3408,6 +3700,7 @@ dependencies = [ "axum", "base64 0.22.1", "bytes", + "flate2", "h2 0.4.11", "http 1.3.1", "http-body 1.0.1", @@ -3423,10 +3716,11 @@ dependencies = [ "tokio", "tokio-rustls", "tokio-stream", - "tower", + "tower 0.5.2", "tower-layer", "tower-service", "tracing", + "webpki-roots 0.26.11", ] [[package]] @@ -3443,6 +3737,21 @@ dependencies = [ "syn", ] +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tower-layer", + "tower-service", + "tracing", +] + [[package]] name = "tower" version = "0.5.2" @@ -3462,6 +3771,24 @@ dependencies = [ "tracing", ] +[[package]] +name = "tower-http" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +dependencies = [ + "bitflags 2.9.1", + "bytes", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "iri-string", + "pin-project-lite", + "tower 0.5.2", + "tower-layer", + "tower-service", +] + [[package]] name = "tower-layer" version = "0.3.3" @@ -3480,6 +3807,7 @@ version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ + "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -3595,6 +3923,12 @@ dependencies = [ "serde", ] +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + [[package]] name = "utf8_iter" version = "1.0.4" @@ -3751,6 +4085,24 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "webpki-roots" +version = "0.26.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" +dependencies = [ + "webpki-roots 1.0.2", +] + +[[package]] +name = "webpki-roots" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "winapi" version = "0.3.9" diff --git a/rustybits/Cargo.toml b/rustybits/Cargo.toml index 7467de3b3..0b1776412 100644 --- a/rustybits/Cargo.toml +++ b/rustybits/Cargo.toml @@ -9,15 +9,20 @@ crate-type = ["staticlib", "rlib"] [features] default = ["zeroidc"] zeroidc = [] -ztcontroller = [] +ztcontroller = [ + "dep:serde", + "dep:temporal-sdk", + "dep:temporal-client", + "dep:temporal-sdk-core-protos", +] [dependencies] -serde = { version = "1", features = ["derive"] } -temporal-sdk = { git = "https://github.com/temporalio/sdk-core", branch = "master" } -temporal-client = { git = "https://github.com/temporalio/sdk-core", branch = "master", features = [ +serde = { version = "1", features = ["derive"], optional = true } +temporal-sdk = { git = "https://github.com/temporalio/sdk-core", branch = "master", optional = true } +temporal-client = { git = "https://github.com/temporalio/sdk-core", branch = "master", optional = true, features = [ "telemetry", ] } -temporal-sdk-core-protos = { git = "https://github.com/temporalio/sdk-core", branch = "master" } +temporal-sdk-core-protos = { git = "https://github.com/temporalio/sdk-core", branch = "master", optional = true } tokio = { version = "1.43", features = ["full"] } uuid = { version = "1.4", features = ["v4"] } openidconnect = { version = "3.4", default-features = false, features = [ @@ -32,6 +37,7 @@ jwt = { version = "0.16", git = "https://github.com/glimberg/rust-jwt" } time = { version = "~0.3", features = ["formatting"] } bytes = "1.3" thiserror = "1" +gcloud-pubsub = { version = "1.3.0" } [build-dependencies] cbindgen = "0.29" diff --git a/rustybits/src/lib.rs b/rustybits/src/lib.rs index a11b77299..cac1f7219 100644 --- a/rustybits/src/lib.rs +++ b/rustybits/src/lib.rs @@ -1,5 +1,7 @@ pub mod ext; #[cfg(feature = "ztcontroller")] +pub mod pubsub; +#[cfg(feature = "ztcontroller")] pub mod smeeclient; #[cfg(feature = "zeroidc")] pub mod zeroidc; diff --git a/rustybits/src/pubsub/mod.rs b/rustybits/src/pubsub/mod.rs new file mode 100644 index 000000000..2fe3be6ba --- /dev/null +++ b/rustybits/src/pubsub/mod.rs @@ -0,0 +1,11 @@ +/* + * Copyright (c)2023 ZeroTier, Inc. + * + * Use of this software is governed by the Business Source License included + * in the LICENSE.TXT file in the project's root directory. + * + * Change Date: 2027-01-01 + * + * On the date above, in accordance with the Business Source License, use + * of this software will be governed by version 2.0 of the Apache License. + */ diff --git a/rustybits/src/smeeclient/mod.rs b/rustybits/src/smeeclient/mod.rs index 5779b1473..da743e4e5 100644 --- a/rustybits/src/smeeclient/mod.rs +++ b/rustybits/src/smeeclient/mod.rs @@ -1,4 +1,3 @@ -#![cfg(feature = "ztcontroller")] /* * Copyright (c)2023 ZeroTier, Inc. * @@ -10,7 +9,6 @@ * On the date above, in accordance with the Business Source License, use * of this software will be governed by version 2.0 of the Apache License. */ - use serde::{Deserialize, Serialize}; use std::str::FromStr; use std::time::Duration;