Skip to content

feat(moq-native): support websocket-only client#1235

Merged
kixelated merged 2 commits into
mainfrom
websocket-only-client
Apr 7, 2026
Merged

feat(moq-native): support websocket-only client#1235
kixelated merged 2 commits into
mainfrom
websocket-only-client

Conversation

@kixelated

Copy link
Copy Markdown
Collaborator

Summary

  • Widen cfg gates on Client::new(), connect(), and connect_inner() to accept the websocket feature alone (without any QUIC backend like quinn/noq/quiche)
  • When no QUIC backend matches in connect_inner(), fall through to a direct WebSocket connection instead of bailing
  • Allows compiling with default-features = false, features = ["websocket", "aws-lc-rs"] for WebSocket-only transport

This is useful for debugging transport-specific issues — a customer is seeing "dropped" disconnections from cdn.moq.dev, and we want them to test whether the issue is QUIC-specific by using WebSocket-only.

Test plan

  • cargo check -p moq-native (default features, QUIC+WS) still compiles
  • cargo check -p moq-native --no-default-features --features websocket,aws-lc-rs compiles
  • WebSocket-only client connects to cdn.moq.dev successfully

🤖 Generated with Claude Code

Widen the cfg gates on Client::new(), connect(), and connect_inner()
to also accept the `websocket` feature, so callers can compile without
any QUIC backend (quinn, noq, quiche) and still connect via WebSocket.

When no QUIC backend matches in connect_inner(), fall through to a
direct WebSocket connection instead of bailing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@kixelated kixelated enabled auto-merge (squash) April 7, 2026 18:50
@coderabbitai

coderabbitai Bot commented Apr 7, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 05a38804-3318-42c9-9c85-6066d5ecb29f

📥 Commits

Reviewing files that changed from the base of the PR and between 508fedd and d7f26d5.

📒 Files selected for processing (1)
  • rs/moq-native/src/client.rs
🚧 Files skipped from review as they are similar to previous changes (1)
  • rs/moq-native/src/client.rs

Walkthrough

The change adds the websocket feature to compile-time gating for the MOQ native client. Client::new, Client::connect, and connect_inner now include websocket alongside existing noq, quinn, quiche, and iroh feature checks. Error/bail messages were updated to mention WebSocket. connect_inner now conditionally attempts a direct WebSocket connection when no QUIC/i-ROH backend matched and the websocket feature is enabled.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The PR title clearly and concisely describes the main change: adding support for WebSocket-only client compilation in moq-native.
Description check ✅ Passed The description is well-related to the changeset, explaining the feature's purpose, implementation details, and test plan for WebSocket-only client support.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch websocket-only-client
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch websocket-only-client

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@kixelated kixelated disabled auto-merge April 7, 2026 19:12
@kixelated kixelated merged commit b134663 into main Apr 7, 2026
2 checks passed
@kixelated kixelated deleted the websocket-only-client branch April 7, 2026 19:12
This was referenced Apr 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant