buzz-pair: panics on wss:// relays — rustls CryptoProvider never installed
メンテナーはふだん 1 日以内に返信
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 92/100
調査の方向性
crates/buzz-pairing-cli/Cargo.toml とメインエントリーポイントから始め、次に crates/buzz-cli/src/lib.rs の rustls の設定と、その依存関係に関するコメントを比較します。provider の設定が関連する crate と一致していることを確認し、その後、文書化されている source および target コマンドを wss:// リレーに対して実行して、panic なしに handshake が完了することを確認します。
索引モデルが issue の本文から書いたものです。
説明
buzz-pair panics on any wss:// relay because no rustls CryptoProvider is installed. Since the subcommand defaults to wss://relay.damus.io, the documented quick-start fails out of the box.
Repro
cargo build --release -p buzz-pairing-cli
./target/release/buzz-pair source --relay wss://relay.damus.io
Actual
The QR URI prints, then:
Waiting for target to scan QR code...
thread 'main' panicked at rustls-0.23.42/src/crypto/mod.rs:249:14:
Could not automatically determine the process-level CryptoProvider from Rustls crate features.
Call CryptoProvider::install_default() before this point to select a provider manually, or make
sure exactly one of the 'aws-lc-rs' and 'ring' features is enabled.
ws:// URLs are unaffected, so it reproduces only against TLS relays — i.e. every real one.
Cause
The sibling binaries install the provider explicitly; buzz-pairing-cli does not. Compare crates/buzz-cli/src/lib.rs:
let _ = rustls::crypto::ring::default_provider().install_default();
and the comment on buzz-cli's own rustls dependency explaining why a direct dep with the ring feature is needed (feature unification across the workspace otherwise leaves rustls unable to pick a provider).
Fix
Same two changes as the sibling crates — add to crates/buzz-pairing-cli/Cargo.toml:
rustls = { version = "0.23", default-features = false, features = ["ring", "std"] }
and at the top of main():
let _ = rustls::crypto::ring::default_provider().install_default();
Verified locally: after this, source/target complete a full handshake over wss://.
Environment
- Commit
4cd82f5(main, 2026-09-13) - macOS 26.6.2, arm64, toolchain via hermit
- 主要言語
- Rust
- スター
- 35.9k
- フォーク
- 4.8k
- 平均マージ
- 1日 13時間
- マージ済み PR(30日)
- 254
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
block/buzz のほかの issue
-
Mobile: show Topic, then Purpose, when a channel has no Description対応中かも @chkdesign が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
メンテナーはふだん 1 日以内に返信
-
Desktop: avatars blink (blank → gray → photo) whenever a new message group renders対応中かも @brucesantos が 11 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
メンテナーはふだん 1 日以内に返信
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
chipsalliance/caliptra-sw#4311 ·
メンテナーはふだん 2 日以内に返信
-
`image_generation`: `max_retries` is ignored for OpenAI-compatible providers (always 2 retries)対応中かも @ericz7900 が今日担当しました。 オープンllm translation
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
メンテナーはふだん 1 日以内に返信
-
Help-Wanted Needs-Triage Package-Request
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
microsoft/winget-pkgs#456324 ·
メンテナーはふだん 1 日以内に返信
-
ai_p2
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
ClickHouse/ClickHouse#126833 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信