libmoq v0.2.14
·
2357 commits
to main
since this release
What's Changed
- Add Release Py workflow for Python packages by @kixelated in #1132
- Rename next_group to recv_group for clarity by @kixelated in #1135
- Fix non-US relay cluster connectivity and improve monitoring by @kixelated in #1130
- Revert next_group to recv_group rename by @kixelated in #1137
- Distinguish Parameters from Properties per moq-transport-17 by @kixelated in #1136
- Add missing container field to media configs by @Qizot in #1143
- Bump moq-ffi version to 0.1.5 by @kixelated in #1145
- Add systematic tracing for control message encode/decode by @kixelated in #1144
- Bump cachix/cachix-action from 16 to 17 by @dependabot[bot] in #1150
- Bump rustls-webpki from 0.103.9 to 0.103.10 in the cargo group across 1 directory by @dependabot[bot] in #1146
- Add with_origin convenience method to Client and Server by @kixelated in #1153
- Make SUBSCRIBE_NAMESPACE errors non-fatal by @kixelated in #1154
- Add "click to change latency" help text to buffer control by @kixelated in #1157
- Add generic ordered::Consumer/Producer to moq-mux by @kixelated in #1155
- Fix pyright checking generated/vendored files by @kixelated in #1158
- Add Avc1 import for AVCC-formatted H.264 by @kixelated in #1161
- chore: release by @moq-bot[bot] in #1159
- Update TypeScript from 5.9 to 6.0 by @kixelated in #1151
- feat: expose moq-relay as library by @Frando in #1121
- Use typed ordered::Consumer for video/audio in moq-ffi by @Qizot in #1163
- Remove --quiet flag from cargo and nix commands by @kixelated in #1166
- chore: release by @moq-bot[bot] in #1162
- Replace cargo-hack with simpler feature checking approach by @kixelated in #1167
- Update Python bindings for subscribe_media container parameter by @kixelated in #1165
- Add moq-codec crate to reserve name by @kixelated in #1169
- Minor JS fixes. by @kixelated in #1172
- More minor changes. by @kixelated in #1173
- Drone demo: real-time 2D game with physics by @kixelated in #1171
- chore: release by @moq-bot[bot] in #1168
- fix(@moq/token): fix broken npm publish by @kixelated in #1176
- Update dependencies including breaking changes by @kixelated in #1175
- Update flake.lock by @github-actions[bot] in #1177
- fix(@moq/lite): encode empty namespace as [] not [""] by @kixelated in #1179
- Update dependencies by @kixelated in #1181
- Add moq-relay release workflow and Nix cache configuration by @kixelated in #1178
- Host test footage on vid.moq.dev via Cloudflare R2 by @kixelated in #1184
- fix(@moq/lite): catch orphaned .closed rejection on WebTransport failure by @bndcts in #1182
- fix(dev/pub): Fix worker HEAD handling and misc issues by @kixelated in #1185
- Extract shared release script for workflows by @kixelated in #1186
- Add Markdown linting with remark configuration by @kixelated in #1183
- Use space syntax for just module commands by @kixelated in #1187
- feat: key-based public access for anonymous subscribe/publish by @kixelated in #1180
- Improve SETUP message handling and error reporting in session by @kixelated in #1189
- fix: make dev module recipes work with just argument passing by @kixelated in #1191
- Migrate from zod to zod/mini for lighter bundle size by @kixelated in #1190
- Expand .remarkignore to exclude common build and environment directories by @kixelated in #1193
- Replace anyhow with custom error types using thiserror by @kixelated in #1192
- Ignore build and cache directories in remark linting by @kixelated in #1195
- feat(moq-relay): on-demand key resolution via --auth-keys by @kixelated in #1188
- Add jemalloc heap profiling to moq-relay by @kixelated in #1194
- Replace drone demo with MoQ Boy by @kixelated in #1197
- Remove redundant validateClaims from @moq/token by @kixelated in #1196
- Bump moq-mux version from 0.3.4 to 0.3.5 by @kixelated in #1198
- chore: release by @moq-bot[bot] in #1174
- Fix pub flake to use Cachix cache by @kixelated in #1202
- Auto-pause emulation when no viewers are watching by @kixelated in #1201
- Rename dev/ to demo/, split moq-boy into rs/ and js/ by @kixelated in #1204
- Add --version flag to all CLI tools by @kixelated in #1203
- Use Nix for release-plz CI workflow by @kixelated in #1206
- Pass --git-token to release-plz in justfile by @kixelated in #1209
- Set up moq-boy for publishing and add CDN infrastructure by @kixelated in #1205
- Fetch preview frame when paused by @kixelated in #1210
- chore: release by @moq-bot[bot] in #1199
- Move demo page to demo/boy and bootstrap video catalog by @kixelated in #1212
- moq-boy: use 4s GoP interval and 64kbps audio bitrate by @kixelated in #1214
- Replace fabricated code samples in docs with links to actual source files by @kixelated in #1216
- Add encoding/emulation stats to moq-boy by @kixelated in #1218
- moq-boy: hover to control, click to expand in container by @kixelated in #1217
- moq-boy: throttle feedback broadcast and reset on pause by @kixelated in #1215
- fix(moq-boy): align audio and video PTS to a single wall-clock reference by @kixelated in #1211
- Add jitter tracking to video codecs and catalog metadata by @kixelated in #1220
- Add location label to game viewer stats display by @kixelated in #1219
- Increase QUIC idle timeout to 30s and keep-alive to 5s by @kixelated in #1221
- Fix spurious "short buffer" warnings during message decode by @kixelated in #1223
- Add media source labels to sync latency tracking by @kixelated in #1222
- moq-boy: Review+revamp JS player by @kixelated in #1224
- moq-boy: refactor Rust publisher into Session struct by @kixelated in #1225
- Remove git_only flags from release-plz config by @kixelated in #1228
- fix: pass null pointer for jemalloc prof.dump by @kixelated in #1227
- moq-boy: dark mode, fix paths, subscription improvements by @kixelated in #1226
- chore: release by @moq-bot[bot] in #1213
- fix(@moq/watch): guard decoder cleanup against already-closed codec by @bndcts in #1230
- Deploy the CDN. by @kixelated in #1232
- Switch Docker images from kixelated/ to moqdev/ by @kixelated in #1234
- feat(moq-native): support websocket-only client by @kixelated in #1235
- Replace guest access with programmatic public access config by @kixelated in #1233
- chore: release by @moq-bot[bot] in #1229
- fix:
just devshould run the full demo by @kixelated in #1237 - fix(moq-relay): wire up --auth-public-subscribe and --auth-public-publish by @kixelated in #1240
- Consolidate moq-boy UI into single web component by @kixelated in #1241
- Deploy boy by @kixelated in #1243
- Track audio frame reception timing in decoder by @kixelated in #1245
- fix(moq-relay): allow connecting to parent of token root by @kixelated in #1247
- fix(moq-boy): mute by default, escape to collapse, center grid by @kixelated in #1251
- fix: update sync timestamp in audio legacy decoder by @kixelated in #1250
- Add bandwidth estimation for adaptive bitrate control by @kixelated in #1208
- Reduce moq-boy input latency by @kixelated in #1253
- Add frame eviction to groups with configurable size limits by @kixelated in #1256
- Add automatic reconnection with exponential backoff by @kixelated in #1246
- Refactor CDN infrastructure into independent tofu modules by @kixelated in #1252
- Add .terraform/ to remarkignore by @kixelated in #1259
- Exclude moq-ffi from semver checks by @kixelated in #1260
- Add support for MOQ Lite Draft 04 with enhanced features by @kixelated in #1257
- Move moq-gst into the monorepo by @kixelated in #1262
- Support multiple announce prefixes in MOQ subscriber by @kixelated in #1249
- Add dynamic RTT-based jitter mode for adaptive buffer sizing by @kixelated in #1255
- Remove doc/spec/ and link to IETF datatracker by @kixelated in #1261
- Add import statistics tracking and reporting by @kixelated in #1242
- Expand GStreamer plugin documentation and add convenience commands by @kixelated in #1266
- Send RTT in probe messages and tune jitter buffer by @kixelated in #1265
- Clean up CLI publish stats output by @kixelated in #1263
- Tweak watch UI latency slider: 10ms steps, 4s max by @kixelated in #1264
- Move Python, Tofu, and Nix checks from check to ci task by @kixelated in #1267
- Fix MoQ Boy audio blasting on autoplay click by @kixelated in #1270
- Prevent concurrent release workflow cancellation by @kixelated in #1271
- Remove moq-boy-preview component documentation by @kixelated in #1274
- Add per-component latency breakdown for moq-boy by @kixelated in #1268
- Fix release-plz: remove gen/.gitignore files that were both tracked and ignored by @kixelated in #1275
- Use Command signal for reactive track fanout in moq-boy by @kixelated in #1276
- Fix lychee CI link checker failures by @kixelated in #1269
- chore: release by @moq-bot[bot] in #1236
- Remove auto-reset timeout, preserve emulator state across pauses by @kixelated in #1279
- Fix audio underflow by tracking sync reference per label by @kixelated in #1272
- Bump the JS pacakges. by @kixelated in #1281
- Deploy the boy by @kixelated in #1282
- Add CDN usage documentation for @moq/watch and @moq/publish by @kixelated in #1283
- Move buffer slider from Controls to StatsPanel by @kixelated in #1285
- Remove lychee link checker from CI and dependencies by @kixelated in #1277
- fix(moq-lite): exit run_send_bandwidth when the session closes by @kixelated in #1286
- chore: release by @moq-bot[bot] in #1278
- Fix gstreamer. by @kixelated in #1289
- Refactor publish stats logging to use structured logging by @kixelated in #1290
- Miscellaneous fixes by @kixelated in #1291
- chore(@moq/watch): bump patch to 0.2.6 by @kixelated in #1292
- Execute vite with bun, not node. by @kixelated in #1293
- use generated name if no sink pad name provided by @sidsethupathi in #1294
- fix: add
sideEffectsto some js libraries by @beeequeue in #1298 - Bump pytest from 9.0.2 to 9.0.3 in the uv group across 1 directory by @dependabot[bot] in #1297
- Add mTLS support for moq-relay by @kixelated in #1299
- chore: release by @moq-bot[bot] in #1287
- feat: add TrackConsumer::produce() for zero-copy track sharing by @ksletmoe-aws in #1300
- Replace postMessage with SharedArrayBuffer for lock-free audio transfer by @kixelated in #1295
- conducer: replace Weak waker list with atomic-flag slots by @kixelated in #1301
- Add macOS to Cachix build matrix by @kixelated in #1303
- fix: Safari/Firefox moq-boy compatibility by @kixelated in #1304
- chore: release by @moq-bot[bot] in #1302
- Add landing page for non-MoQ clients accessing relay by @kixelated in #1280
- moq-token: default to base64url encoding for JWK output by @kixelated in #1309
- fix: disable WebTransport on Firefox, force WebSocket fallback by @kixelated in #1306
- Replace --identity with separate --cert and --key flags by @kixelated in #1308
- moq-relay: refactor auth error handling, add HTTP client tests by @kixelated in #1311
- Fix keyboard input handling in GameCard component by @kixelated in #1312
- chore: bump patch versions by @kixelated in #1314
- moq-boy: lower default volume and add volume slider by @kixelated in #1313
- moq-relay: inline landing page HTML to fix Nix build by @kixelated in #1316
- Replace two moq-boy games by @kixelated in #1315
- chore: bump JS patch versions by @kixelated in #1317
- Change broadcast replacement strategy to queue backups instead of reannouncing by @kixelated in #1319
- chore: release by @moq-bot[bot] in #1305
- chore: release by @moq-bot[bot] in #1320
- Remove cargo-semver-checks dependency and workflow by @kixelated in #1323
- Clarify group delivery semantics with recv_group and next_group_ordered by @kixelated in #1324
- Add back button to game controls UI by @kixelated in #1325
- Add TrackConsumer::read_frame as inverse of write_frame by @kixelated in #1326
- Adding data (aka json) to the py_lib by @lullabee in #1318
- Fix TrackConsumer::read_frame: respect start_at, avoid premature EOF by @kixelated in #1327
- Add README files for Rust crates by @kixelated in #1284
- Update fly.toml to use the hosted docker image by @mmcc in #1331
- moq-native: resolve DNS hostnames in --server-bind by @kixelated in #1332
- Update flake.lock dependencies by @kixelated in #1333
- chore: release by @moq-bot[bot] in #1321
- nix: use rust-overlay's latest stable toolchain in crane builds by @kixelated in #1336
- nix: align crane toolchain with devShell (rust-overlay's latest stable) by @kixelated in #1337
- chore: release by @moq-bot[bot] in #1334
- Add MSF catalog format support with format negotiation by @kixelated in #1330
- lite: raise WebSocket race head start to 500ms and skip if WebTransport won by @kixelated in #1335
- chore: bump JS patch versions to publish recvGroup by @kixelated in #1339
- Add catalog format configuration to @moq/watch documentation by @kixelated in #1344
- moq-lite/moq-relay: hop-based clustering by @kixelated in #1322
- Bump rustls-webpki from 0.103.12 to 0.103.13 in the cargo group across 1 directory by @dependabot[bot] in #1347
- py/moq-lite: add clock + announced examples by @kixelated in #1345
- moq-lite: add OriginConsumer::wait_for_broadcast; deprecate consume_broadcast by @kixelated in #1340
- relay: add subdomain-based slug routing for customer isolation by @kixelated in #1343
- moq-lite: backport Subscription model API for FETCH readiness by @kixelated in #1348
- Add encoder's AudioContext sampleRate override by @Qizot in #1355
- Handle relays without announcement subscription support by @kixelated in #1352
- moq-lite: per-frame buffer + BufMut producer to cut relay memory by @kixelated in #1353
- @moq/watch: add static catalog format by @skirsten in #1349
- moq-native: relocate jemalloc helper; wire it into moq-boy by @kixelated in #1360
- moq-relay: authenticate HTTPS callers via the cluster mTLS CA by @kixelated in #1350
- moq-lite: add fetch_group API + TrackDynamic by @kixelated in #1357
- @moq/watch: expose AudioContext on the audio backend by @skirsten in #1365
- Update flake.lock by @github-actions[bot] in #1366
- Update Cloudflare limitation note for latency=real-time by @kixelated in #1368
- moq-gst: fix moqsink eos by @sidsethupathi in #1369
- Revert moq-lite FETCH/Subscription API changes by @kixelated in #1372
- feat(player): unify Consumer across container formats by @ksletmoe-aws in #1359
- fix(config): accept single string or array for TOML list fields by @kixelated in #1377
- Fix DNS resolution to prefer matching address family by @kixelated in #1379
- Update OG image with proper dimensions for social sharing by @kixelated in #1381
- moq-lite: tighten public API surface and remove deprecated methods by @kixelated in #1378
- moq-lite: switch insert_track to take TrackConsumer by @kixelated in #1356
- moq-mux backport + dual-API cleanup by @kixelated in #1341
- Unignore moq-mux test fixtures by @kixelated in #1382
- @moq/watch: don't tear down a broadcast when an unrelated path flaps by @kixelated in #1383
- Revert "moq-lite: switch insert_track to take TrackConsumer (#1356)" by @kixelated in #1385
- Revert the revert by @kixelated in #1387
- @moq/watch: source network stats from the connection, not navigator by @kixelated in #1386
- chore: release by @moq-bot[bot] in #1338
New Contributors
- @Qizot made their first contribution in #1143
- @bndcts made their first contribution in #1182
- @sidsethupathi made their first contribution in #1294
- @beeequeue made their first contribution in #1298
- @ksletmoe-aws made their first contribution in #1300
- @lullabee made their first contribution in #1318
- @mmcc made their first contribution in #1331
Full Changelog: libmoq-v0.2.13...libmoq-v0.2.14