Skip to content

Commit 741eabf

Browse files
authored
Dependencies upgrades (#27)
* chore: minor deps updates * chore: major deps updates * fix: deps * feat(ui): surface version and build hash
1 parent 01df2be commit 741eabf

File tree

34 files changed

+975
-503
lines changed

34 files changed

+975
-503
lines changed

Cargo.lock

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

Cargo.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ exclude = ["examples", "tests", "plugins"]
1818
streamkit-core = { version = "0.1", path = "crates/core" }
1919
streamkit-nodes = { version = "0.1", path = "crates/nodes" }
2020
streamkit-engine = { version = "0.1", path = "crates/engine" }
21-
streamkit-server = { version = "0.1", path = "apps/skit" }
21+
streamkit-server = { version = "0.2", path = "apps/skit" }
2222
streamkit-client = { version = "0.1", path = "apps/skit-cli" }
2323
streamkit-api = { version = "0.1", path = "crates/api" }
2424
streamkit-plugin-wasm = { version = "0.1", path = "crates/plugin-wasm" }
@@ -28,8 +28,8 @@ streamkit-plugin-sdk-native = { version = "0.1", path = "sdks/plugin-sdk/native"
2828

2929
tracing = "0.1.44"
3030

31-
tokio = "1.48"
32-
tokio-util = "0.7"
31+
tokio = "1.49"
32+
tokio-util = "0.7.18"
3333

3434
async-trait = "0.1.89"
3535
thiserror = "2.0"
@@ -39,9 +39,9 @@ bytes = "1.11.0"
3939
futures = "0.3.31"
4040

4141
serde = { version = "1.0.228", features = ["derive", "rc"] }
42-
serde-saphyr = "0.0.11"
42+
serde-saphyr = "0.0.15"
4343
serde_json = "1.0"
44-
indexmap = { version = "2.12", features = ["serde"] }
44+
indexmap = { version = "2.13", features = ["serde"] }
4545

4646
opentelemetry = "0.31.0"
4747

apps/skit-cli/Cargo.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ path = "src/main.rs"
1919
streamkit-api = { workspace = true }
2020

2121
# For building the command-line interface
22-
clap = { version = "4.5.53", features = ["derive"] }
22+
clap = { version = "4.5.54", features = ["derive"] }
2323

2424
# For HTTP client functionality
25-
reqwest = { version = "0.12", features = ["multipart", "stream", "json"] }
25+
reqwest = { version = "0.13", features = ["multipart", "stream", "json"] }
2626
# For WebSocket client
2727
tokio-tungstenite = { version = "0.28.0", features = ["native-tls"] }
28-
url = "2.5.7"
28+
url = "2.5.8"
2929

3030
# For async runtime
3131
tokio = { workspace = true, features = ["full"] }
@@ -48,9 +48,9 @@ serde_json = "1.0"
4848
uuid = { version = "1.19", features = ["v4"] }
4949

5050
# For load testing
51-
toml = "0.9"
51+
toml = "0.9.11"
5252
rand = "0.9"
53-
tokio-util = "0.7"
53+
tokio-util = "0.7.18"
5454
anyhow = "1.0"
5555
serde = { workspace = true }
5656

apps/skit/Cargo.toml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name = "streamkit-server"
33
authors = ["Claudio Costa <cstcld91@gmail.com>", "StreamKit Contributors"]
44
repository = "https://github.com/streamer45/streamkit"
55
license = "MPL-2.0"
6-
version = "0.1.0"
6+
version = "0.2.0"
77
edition = "2021"
88
publish = false
99

@@ -25,7 +25,7 @@ streamkit-plugin-wasm = { workspace = true }
2525
streamkit-plugin-native = { workspace = true }
2626

2727
# For building the command-line interface
28-
clap = { version = "4.5.53", features = ["derive"] }
28+
clap = { version = "4.5.54", features = ["derive"] }
2929

3030
# For layered configuration management
3131
figment = { version = "0.10.19", features = ["toml", "env"] }
@@ -34,10 +34,10 @@ figment = { version = "0.10.19", features = ["toml", "env"] }
3434
serde = { workspace = true, features = ["derive"] }
3535
serde-saphyr = { workspace = true }
3636
serde_json = "1.0"
37-
schemars = "1.1.0"
37+
schemars = "1.2.0"
3838

3939
# For serializing the default config into TOML format
40-
toml = "0.9"
40+
toml = "0.9.11"
4141

4242
# For structured logging
4343
tracing = { workspace = true }
@@ -48,21 +48,21 @@ anyhow = "1.0"
4848
# For HTTP server
4949
axum = { version = "0.8", features = ["multipart", "ws"] }
5050
tokio = { workspace = true, features = ["full"] }
51-
tower = "0.5"
51+
tower = "0.5.3"
5252
tower-http = { version = "0.6", features = ["cors", "trace", "fs", "set-header"] }
53-
tokio-stream = "0.1"
53+
tokio-stream = "0.1.18"
5454
hyper = { version = "1.8", features = ["full"] }
5555
axum-server = { version = "0.8", features = ["tls-rustls"] }
56-
rustls = { version = "0.23", features = ["ring"] }
57-
reqwest = { version = "0.12", features = ["multipart", "json"] }
56+
rustls = { version = "0.23.36", features = ["ring"] }
57+
reqwest = { version = "0.13", features = ["multipart", "json"] }
5858
bytes = { workspace = true }
5959
futures = { workspace = true }
6060
uuid = { version = "1.19", features = ["v4", "serde"] }
6161
http-body-util = "0.1"
6262
multer = "3.1"
6363

6464
# For embedding static files
65-
rust-embed = "8.9"
65+
rust-embed = "8.11"
6666
mime_guess = "2.0"
6767

6868
# For OpenTelemetry OTLP integration
@@ -86,7 +86,7 @@ sysinfo = "0.37.2"
8686

8787
# For tokio-console debugging (optional)
8888
console-subscriber = { version = "0.5", optional = true }
89-
time = { version = "0.3.44", features = ["formatting"] }
89+
time = { version = "0.3.45", features = ["formatting"] }
9090

9191
# For CPU profiling (optional)
9292
# Uses frame-pointer unwinding for much faster stack traces (vs libunwind)
@@ -108,7 +108,7 @@ jemalloc_pprof = { version = "0.8", features = ["symbolize"], optional = true }
108108
dhat = { version = "0.3", optional = true }
109109

110110
# MoQ support (optional)
111-
moq-native = { version = "0.10.1", optional = true }
111+
moq-native = { version = "0.11.0", optional = true }
112112
async-trait = { workspace = true }
113113

114114
# For glob pattern matching in permissions
@@ -124,7 +124,7 @@ getrandom = "0.3"
124124
aws-lc-rs = "1"
125125

126126
# For MoQ auth path matching (optional, with moq feature)
127-
moq-lite = { version = "0.10", optional = true }
127+
moq-lite = { version = "0.11.0", optional = true }
128128

129129
[features]
130130
default = ["script"]
@@ -137,12 +137,12 @@ moq = ["dep:moq-native", "dep:moq-lite"]
137137
script = ["streamkit-nodes/script", "streamkit-engine/script"]
138138

139139
[dev-dependencies]
140-
tokio-test = "0.4"
140+
tokio-test = "0.4.5"
141141
tokio-tungstenite = "0.28"
142142
futures-util = "0.3"
143143
ogg = "0.9.2"
144-
opus = "0.3"
145-
tempfile = "3.23"
144+
opus = "0.3.1"
145+
tempfile = "3.24"
146146
urlencoding = "2.1"
147147

148148
[lints.rust]

apps/skit/build.rs

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
// SPDX-FileCopyrightText: © 2025 StreamKit Contributors
2+
//
3+
// SPDX-License-Identifier: MPL-2.0
4+
5+
// Build scripts communicate with Cargo via stdout (`cargo:` directives).
6+
// Allow `println!` here to emit those directives.
7+
#![allow(clippy::disallowed_macros)]
8+
9+
use std::{
10+
env, fs,
11+
path::{Path, PathBuf},
12+
process::Command,
13+
};
14+
15+
fn main() {
16+
println!("cargo:rerun-if-env-changed=SKIT_BUILD_HASH");
17+
println!("cargo:rerun-if-env-changed=GIT_SHA");
18+
println!("cargo:rerun-if-env-changed=GITHUB_SHA");
19+
20+
let git_head = find_git_head();
21+
if let Some(head_path) = git_head.as_ref() {
22+
println!("cargo:rerun-if-changed={}", head_path.display());
23+
24+
if let Ok(head_ref) = fs::read_to_string(head_path) {
25+
if let Some(reference) = head_ref.trim().strip_prefix("ref: ") {
26+
if let Some(repo_root) = head_path.parent().and_then(|dir| dir.parent()) {
27+
let ref_path = repo_root.join(reference);
28+
println!("cargo:rerun-if-changed={}", ref_path.display());
29+
}
30+
}
31+
}
32+
}
33+
34+
let hash = read_env_hash("SKIT_BUILD_HASH")
35+
.or_else(|| read_env_hash("GIT_SHA"))
36+
.or_else(|| read_env_hash("GITHUB_SHA"))
37+
.or_else(|| {
38+
git_hash(git_head.as_ref().and_then(|path| path.parent()).and_then(|p| p.parent()))
39+
})
40+
.unwrap_or_else(|| "unknown".to_string());
41+
42+
println!("cargo:rustc-env=SKIT_BUILD_HASH={hash}");
43+
}
44+
45+
fn read_env_hash(var: &str) -> Option<String> {
46+
let value = env::var(var).ok()?;
47+
let trimmed = value.trim();
48+
if trimmed.is_empty() {
49+
None
50+
} else {
51+
Some(trimmed.to_string())
52+
}
53+
}
54+
55+
fn git_hash(repo_root: Option<&Path>) -> Option<String> {
56+
let mut command = Command::new("git");
57+
command.args(["rev-parse", "HEAD"]);
58+
59+
if let Some(root) = repo_root {
60+
command.current_dir(root);
61+
}
62+
63+
let output = command.output().ok()?;
64+
65+
if !output.status.success() {
66+
return None;
67+
}
68+
69+
let hash = String::from_utf8(output.stdout).ok()?;
70+
let trimmed = hash.trim();
71+
if trimmed.is_empty() {
72+
None
73+
} else {
74+
Some(trimmed.to_string())
75+
}
76+
}
77+
78+
fn find_git_head() -> Option<PathBuf> {
79+
let manifest_dir = env::var("CARGO_MANIFEST_DIR").ok()?;
80+
let mut dir = PathBuf::from(manifest_dir);
81+
82+
loop {
83+
let head_path = dir.join(".git").join("HEAD");
84+
if head_path.exists() {
85+
return Some(head_path);
86+
}
87+
88+
if !dir.pop() {
89+
break;
90+
}
91+
}
92+
93+
None
94+
}

apps/skit/src/server.rs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,15 @@ async fn profile_heap_handler(
8585
crate::profiling::profile_heap().await
8686
}
8787

88+
fn build_hash() -> &'static str {
89+
option_env!("SKIT_BUILD_HASH").unwrap_or("unknown")
90+
}
91+
8892
async fn health_handler() -> impl IntoResponse {
8993
Json(serde_json::json!({
9094
"status": "ok",
9195
"version": env!("CARGO_PKG_VERSION"),
96+
"build_hash": build_hash(),
9297
}))
9398
}
9499

@@ -2291,7 +2296,12 @@ fn start_moq_webtransport_acceptor(
22912296
match moq_config.init() {
22922297
Ok(mut server) => {
22932298
// Store fingerprints in gateway for HTTP endpoint
2294-
let fingerprints = server.fingerprints().to_vec();
2299+
let fingerprints = server
2300+
.tls_info()
2301+
.read()
2302+
.unwrap_or_else(std::sync::PoisonError::into_inner)
2303+
.fingerprints
2304+
.clone();
22952305
gateway.set_fingerprints(fingerprints.clone()).await;
22962306

22972307
for (i, fp) in fingerprints.iter().enumerate() {

crates/core/Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ categories = ["multimedia", "network-programming"]
1313
readme = "README.md"
1414

1515
[dependencies]
16-
tokio = { version = "1.48", features = ["sync", "macros"] }
17-
tokio-util = "0.7"
16+
tokio = { version = "1.49", features = ["sync", "macros"] }
17+
tokio-util = "0.7.18"
1818

1919
async-trait = "0.1.89"
2020

2121
serde = { version = "1.0.228", features = ["derive", "rc"] }
2222
serde_json = "1.0"
23-
schemars = { version = "1.1.0", features = ["derive"] }
23+
schemars = { version = "1.2.0", features = ["derive"] }
2424
ts-rs = { version = "11.1.0", features = ["serde-json-impl"] }
2525

2626
bytes = "1.11.0"
@@ -31,4 +31,4 @@ tracing = "0.1.44"
3131
thiserror = "2.0"
3232

3333
[dev-dependencies]
34-
tokio = { version = "1.48", features = ["sync", "macros", "rt-multi-thread", "time"] }
34+
tokio = { version = "1.49", features = ["sync", "macros", "rt-multi-thread", "time"] }

crates/nodes/Cargo.toml

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -33,23 +33,23 @@ tracing = { workspace = true }
3333

3434
# For OpenTelemetry OTLP integration
3535
opentelemetry = { workspace = true, features = ["metrics", "trace"] }
36-
schemars = { version = "1.1.0", features = ["derive"], optional = true }
36+
schemars = { version = "1.2.0", features = ["derive"], optional = true }
3737

3838
# For the mixer's concurrent input handling
3939
futures = { workspace = true }
4040

4141
# --- Optional Dependencies ---
4242
# These are only included if their corresponding feature is enabled.
4343
ogg = { version = "0.9.2", optional = true, features = ["async"] }
44-
opus = { version = "0.3", optional = true }
45-
url = { version = "2.5.7", optional = true, features = ["serde"] }
46-
rquickjs = { version = "0.10", features = ["array-buffer", "futures", "loader", "parallel"], optional = true }
44+
opus = { version = "0.3.1", optional = true }
45+
url = { version = "2.5.8", optional = true, features = ["serde"] }
46+
rquickjs = { version = "0.11", features = ["array-buffer", "futures", "loader", "parallel"], optional = true }
4747
wildmatch = { version = "2.6", optional = true }
4848

4949
moq-transport = { version = "0.12.1", optional = true }
50-
moq-native = { version = "0.10.1", optional = true }
51-
moq-lite = { version = "0.10.1", optional = true }
52-
hang = { version = "0.9.1", optional = true }
50+
moq-native = { version = "0.11.0", optional = true }
51+
moq-lite = { version = "0.11.0", optional = true }
52+
hang = { version = "0.10.0", optional = true }
5353

5454
# For local dev, debugging moq stuff
5555
# moq-transport = { version = "0.11.0", optional = true }
@@ -58,13 +58,14 @@ hang = { version = "0.9.1", optional = true }
5858
# hang = { path = "../../moq/rs/hang", optional = true }
5959

6060
serde_json = { version = "1.0", optional = true }
61-
reqwest = { version = "0.12", optional = true, default-features = false, features = [
62-
"rustls-tls",
61+
reqwest = { version = "0.13", optional = true, default-features = false, features = [
62+
"rustls",
6363
"stream",
6464
] }
65-
tempfile = { version = "3", optional = true }
65+
tempfile = { version = "3.24", optional = true }
6666
uuid = { version = "1", optional = true, features = ["v4"] }
67-
rubato = { version = "0.16", optional = true }
67+
rubato = { version = "1.0", optional = true }
68+
audioadapter-buffers = { version = "2.0", optional = true }
6869
symphonia = { version = "0.5.5", optional = true, default-features = false, features = [
6970
"mp3",
7071
"wav",
@@ -98,7 +99,7 @@ default = [
9899
passthrough = ["dep:schemars"]
99100
audio_gain = ["dep:schemars"]
100101
audio_mixer = ["dep:schemars", "dep:serde_json"]
101-
audio_resampler = ["dep:schemars", "dep:rubato"]
102+
audio_resampler = ["dep:schemars", "dep:rubato", "dep:audioadapter-buffers"]
102103
audio_pacer = ["dep:schemars"]
103104
file_io = ["dep:schemars"]
104105
pacer = ["dep:schemars"]
@@ -122,9 +123,9 @@ webm = ["dep:webm", "dep:schemars"]
122123
symphonia = ["dep:symphonia", "dep:schemars"]
123124

124125
[dev-dependencies]
125-
tempfile = "3"
126+
tempfile = "3.24"
126127
axum = "0.8"
127-
tower = "0.5"
128+
tower = "0.5.3"
128129

129130
[lints]
130131
workspace = true

0 commit comments

Comments
 (0)