オープンソース
SDR–; パッチ可能な信号グラフ、Rust DSP、Web UIを備えたオープンソースSDR
SDR–; open source SDR with a patchable signal graph, Rust DSP, web UI (github.com)
要約
sdr--は、視覚的な信号パスを持つソフトウェア定義無線(SDR)アプリケーションです。デバイス、デコーダー、ディスプレイ、レコーダーをキャンバス上で接続し、使用するコントロールをラックに固定できます。Rustサーバーが無線および信号処理を担当し、Reactインターフェースはデスクトップウィンドウまたはブラウザで実行されます。現在活発に開発されており、多くのデコーダーがテスト済みです。
全文翻訳
sdr-- sdr--は、視覚的な信号パスを持つソフトウェア定義無線アプリケーションです。デバイス、デコーダー、ディスプレイ、レコーダーをキャンバス上で接続し、使用するコントロールをラックにピン留めできます。Rustサーバーが無線および信号処理を処理します。Reactインターフェースはデスクトップウィンドウまたはブラウザで実行されます。これらを1台のコンピュータで実行することも、サーバーをアンテナの横に置いてネットワーク経由で接続することもできます。内蔵の信号ジェネレーターにより、SDRなしで試すことができます。
ステータス
sdr--は活発に開発中です。ほとんどのデコーダーは生成されたIQフィクスチャでテストされており、オンエアで検証されたのは一部のみです。チャネルカタログには、各モードの証拠とその制限がリストされています。実験的なモードでは、デコードされたオーディオまたはビデオなしで取得または測定を提供できます。
できること
AM、NFM、ステレオとRDSを備えた放送用FM、SSB、およびサポートされているデジタル音声モードを聞くことができます。航空機、船舶、アマチュア無線、ページャー、センサー、その他の無線トラフィックをデコードできます。完全なチャネルリストを参照してください。スペクトル、ウォーターフォール、デコードされたメッセージ、位置マップ、受信した画像を表示できます。周波数をスキャンし、ワークスペース、プリセット、ブックマークを保存できます。デバイスIQ、チャネルベースバンド、またはオーディオを記録し、IQを同じデコーダーで再生できます。方向探知、アンテナ結合、ビームフォーミング、パッシブレーダー用のコヒーレントレシーバーを使用できます。UDPまたはTCP経由でIQをエクスポートし、デコードされたイベントをWebhook、Matrix、またはMQTTに転送できます。REST、WebSocket、またはMCP経由で実行中のレシーバーを制御できます。
インストール
GitHub Releasesからデスクトップインストーラーまたはポータブルサーバーをダウンロードしてください。インストール手順には、各パッケージ、Homebrew、Nix、およびコンテナの手順が含まれています。
macOSでは、Homebrewでデスクトップアプリをインストールします: brew tap newspicel/tap brew install --cask sdrminusminus
ヘッドレスサーバーには、brew install sdrmmを使用します。
LinuxでDocker Composeを使用してサーバーを実行するには:
git clone https://github.com/Newspicel/sdrminusminus.git
cd sdrminusminus
docker compose up -d
http://localhost:8080 を開きます。
サーバーはデフォルトで認証なしで動作します。ネットワークアクセスを設定する際は、設定とセキュリティを参照してください。
レシーバーを試す
スターターデバイスノードで、Signal Generator(仮想)を選択します。接続されたScopeに生成された信号が表示されます。
+ Node を選択し、NFMチャネルを追加します。Device IQをNFM IQに接続し、NFMオーディオをSpeakerオーディオに接続します。チャネルをラジオの中心周波数から300 kHz上に設定し、Speakerでオーディオを開始します。1 kHzのトーンが聞こえるはずです。最初のレシーバーは、コントロールとハードウェアへの切り替えを案内します。
標準ビルドには、ネイティブRTL-SDR、HackRF、SDRplay、およびCR-8ドライバーが含まれています。SDRplayとCR-8にはベンダーライブラリも必要です。デスクトップインストーラーとコンテナには、Airspy/AirspyHF、bladeRF、LimeSDR、PlutoSDR、およびSoapyRemote用のSoapySDRモジュールがバンドルされています。ハードウェアガイドを参照してください。
スクリーンショット
これらのキャプチャは、内蔵信号ジェネレーターまたはリポジトリIQフィクスチャを使用しています。cargo xtask screenshots で再生成できます。
スペクトルとウォーターフォール
ラックビュー
FT8デコード
信号識別
航空機位置
船舶位置
スロー・スキャン・テレビ
アマチュアテレビ
ページャーメッセージ
放送用FM
ソースからビルド
リポジトリのピン留めされたRustツールチェーン、C/C++コンパイラ、CMake、Node 26、pnpm 11、およびSoapySDR 0.8開発ファイルが必要です。ビルドガイドにプラットフォームの前提条件が記載されています。
git clone https://github.com/Newspicel/sdrminusminus.git
cd sdrminusminus
pnpm --dir web install --frozen-lockfile
pnpm --dir web build
cargo run -p sdrmm
http://localhost:8080 を開きます。
開発中は、cargo xtask dev でサーバーとフロントエンドをホットリロード付きで http://localhost:5173 で起動します。バックエンドのファイルが変更されたときに再起動するには --watch を追加します。
仮想ソースとネットワークレシーバーのみでビルドするには: cargo run -p sdrmm --no-default-features --features net-client
開発パス
目的
apps/sdrmm ヘッドレスサーバーバイナリ
apps/desktop Tauriデスクトップシェル
crates/dsp, crates/modem 信号処理プリミティブと再利用可能なモデムアルゴリズム
crates/engine デバイスと信号処理のオーケストレーション
crates/channels デモジュレーターとプロトコルデコーダー
crates/device-* ネイティブ、SoapySDR、ネットワーク、仮想、および配列バックエンド
crates/wire 共有API、WebSocket、および設定タイプ
crates/server HTTP、WebSocket、MCP、永続化、および組み込みフロントエンド
web Reactアプリケーション
docs mdBookドキュメント
コマンド
目的
cargo xtask check フォーマット、リンティング、型チェック、ビルド、生成コードのチェック
cargo xtask drift
cargo xtask test ハードウェアなしでRustおよびフロントエンドテストを実行
cargo xtask smoke サーバーに対してブラウザテストを実行
cargo xtask codegen OpenAPIおよびTypeScript APIタイプを再生成
cargo xtask audit cargo-denyで依存関係をチェック
貢献と開発ガイドを参照して、テスト、生成ファイル、リリースを確認してください。
ドキュメントとAPI
ユーザーおよび開発者ガイド
Swagger UI: 実行中のサーバーの /api/docs
OpenAPI: /api/openapi.json またはチェックインされた openapi.json
ライセンス
Copyright (C) 2026 sdr-- contributors. sdr--はGNU General Public License、バージョン3以降でライセンスされています。THIRD_PARTY_NOTICES.mdには、配布されている依存関係とバンドルされているハードウェアコンポーネントがリストされています。それらのライセンステキストは、アプリの[About]パネルでも利用できます。