Skip to content

Commit 91aa71d

Browse files
committed
feat(pegboard): outbound runners
1 parent 8bdf226 commit 91aa71d

File tree

15 files changed

+462
-125
lines changed

15 files changed

+462
-125
lines changed

Cargo.lock

Lines changed: 57 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
[workspace]
33
resolver = "2"
4-
members = ["packages/common/api-builder","packages/common/api-client","packages/common/api-types","packages/common/api-util","packages/common/cache/build","packages/common/cache/result","packages/common/clickhouse-inserter","packages/common/clickhouse-user-query","packages/common/config","packages/common/env","packages/common/error/core","packages/common/error/macros","packages/common/gasoline/core","packages/common/gasoline/macros","packages/common/logs","packages/common/metrics","packages/common/pools","packages/common/runtime","packages/common/service-manager","packages/common/test-deps","packages/common/test-deps-docker","packages/common/types","packages/common/udb-util","packages/common/universaldb","packages/common/universalpubsub","packages/common/util/core","packages/common/util/id","packages/common/versioned-data-util","packages/core/actor-kv","packages/core/api-peer","packages/core/api-public","packages/core/bootstrap","packages/core/dump-openapi","packages/core/guard/core","packages/core/guard/server","packages/core/pegboard-gateway","packages/core/pegboard-runner-ws","packages/core/pegboard-tunnel","packages/core/workflow-worker","packages/infra/engine","packages/services/epoxy","packages/services/namespace","packages/services/pegboard","sdks/rust/api-full","sdks/rust/api-runtime","sdks/rust/bare_gen","sdks/rust/epoxy-protocol","sdks/rust/key-data","sdks/rust/runner-protocol","sdks/rust/tunnel-protocol"]
4+
members = ["packages/common/api-builder","packages/common/api-client","packages/common/api-types","packages/common/api-util","packages/common/cache/build","packages/common/cache/result","packages/common/clickhouse-inserter","packages/common/clickhouse-user-query","packages/common/config","packages/common/env","packages/common/error/core","packages/common/error/macros","packages/common/gasoline/core","packages/common/gasoline/macros","packages/common/logs","packages/common/metrics","packages/common/pools","packages/common/runtime","packages/common/service-manager","packages/common/test-deps","packages/common/test-deps-docker","packages/common/types","packages/common/udb-util","packages/common/universaldb","packages/common/universalpubsub","packages/common/util/core","packages/common/util/id","packages/common/versioned-data-util","packages/core/actor-kv","packages/core/api-peer","packages/core/api-public","packages/core/bootstrap","packages/core/dump-openapi","packages/core/guard/core","packages/core/guard/server","packages/core/pegboard-gateway","packages/core/pegboard-outbound","packages/core/pegboard-runner-ws","packages/core/pegboard-tunnel","packages/core/workflow-worker","packages/infra/engine","packages/services/epoxy","packages/services/namespace","packages/services/pegboard","sdks/rust/api-full","sdks/rust/api-runtime","sdks/rust/bare_gen","sdks/rust/epoxy-protocol","sdks/rust/key-data","sdks/rust/runner-protocol","sdks/rust/tunnel-protocol"]
55

66
[workspace.package]
77
version = "0.0.1"
@@ -79,17 +79,11 @@ tracing-core = "0.1"
7979
tracing-opentelemetry = "0.29"
8080
tracing-slog = "0.2"
8181
vergen = "9.0.4"
82+
reqwest-eventsource = "0.6.0"
8283

8384
[workspace.dependencies.windows]
8485
version = "0.58"
85-
features = [
86-
"Win32",
87-
"Win32_Storage",
88-
"Win32_Storage_FileSystem",
89-
"Win32_System",
90-
"Win32_System_Console",
91-
"Win32_Security",
92-
]
86+
features = ["Win32","Win32_Storage","Win32_Storage_FileSystem","Win32_System","Win32_System_Console","Win32_Security"]
9387

9488
[workspace.dependencies.pest]
9589
version = "2.7"
@@ -105,12 +99,12 @@ features = ["full"]
10599
[workspace.dependencies.rustls]
106100
version = "0.23.25"
107101
default-features = false
108-
features = ["ring", "std", "logging"]
102+
features = ["ring","std","logging"]
109103

110104
[workspace.dependencies.tokio-rustls]
111105
version = "0.26.2"
112106
default-features = false
113-
features = ["ring", "logging"]
107+
features = ["ring","logging"]
114108

115109
[workspace.dependencies.utoipa]
116110
version = "5.4.0"
@@ -358,6 +352,9 @@ path = "packages/core/guard/server"
358352
[workspace.dependencies.pegboard-gateway]
359353
path = "packages/core/pegboard-gateway"
360354

355+
[workspace.dependencies.pegboard-outbound]
356+
path = "packages/core/pegboard-outbound"
357+
361358
[workspace.dependencies.pegboard-runner-ws]
362359
path = "packages/core/pegboard-runner-ws"
363360

docker/dev/docker-compose.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@ services:
187187
environment:
188188
- RIVET_ENDPOINT=http://rivet-engine:6420
189189
- RUNNER_HOST=runner
190+
# - NO_AUTOSTART=1
190191
stop_grace_period: 4s
191192
ports:
192193
- '5050:5050'

packages/common/gasoline/core/src/utils/tags.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,16 @@ impl AsTags for serde_json::Value {
6161
}
6262
}
6363

64+
impl AsTags for () {
65+
fn as_tags(&self) -> WorkflowResult<serde_json::Value> {
66+
Ok(serde_json::Value::Object(serde_json::Map::new()))
67+
}
68+
69+
fn as_cjson_tags(&self) -> WorkflowResult<String> {
70+
Ok(String::new())
71+
}
72+
}
73+
6474
impl<T: AsTags> AsTags for &T {
6575
fn as_tags(&self) -> WorkflowResult<serde_json::Value> {
6676
(*self).as_tags()

packages/common/pools/src/reqwest.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,10 @@ pub async fn client() -> Result<Client, reqwest::Error> {
1313
.await
1414
.cloned()
1515
}
16+
17+
pub async fn client_no_timeout() -> Result<Client, reqwest::Error> {
18+
CLIENT
19+
.get_or_try_init(|| async { Client::builder().build() })
20+
.await
21+
.cloned()
22+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
[package]
2+
name = "pegboard-outbound"
3+
version.workspace = true
4+
authors.workspace = true
5+
license.workspace = true
6+
edition.workspace = true
7+
8+
[dependencies]
9+
anyhow.workspace = true
10+
epoxy.workspace = true
11+
gas.workspace = true
12+
reqwest-eventsource.workspace = true
13+
rivet-config.workspace = true
14+
rivet-runner-protocol.workspace = true
15+
tracing.workspace = true
16+
17+
pegboard.workspace = true

0 commit comments

Comments
 (0)