Stelliberty — Flutter と Rust で作るモダンなプロキシクライアント
概要
Stelliberty は「Flutter をフロントエンド、Rust をコアにした」モダンなプロキシクライアントです。プロキシ処理の中核には Clash の Mihomo コアが用いられており、ルールベースのトラフィック制御や複数プロファイルの切り替えを期待できる設計です。UI/UX は Flutter 側で構築され、クロスプラットフォーム(モバイル/デスクトップ)対応とスムーズな操作感を狙っています。Rust コアは Cargo.toml を含み、パフォーマンスやメモリ安全性を担保しつつ、Flutter からネイティブ連携で機能を呼び出す形になっていることがリポジトリ構成や README から読み取れます。
リポジトリの統計情報
- スター数: 47
- フォーク数: 0
- ウォッチャー数: 47
- コミット数: 5
- ファイル数: 16
- メインの言語: Dart
主な特徴
- Flutter(UI)と Rust(ネットワークコア/Clash Mihomo)を組み合わせたハイブリッド構成
- Clash Mihomo コア採用によるルールベースのプロキシ振り分けと設定互換性
- クロスプラットフォーム対応を見据えた設計(モバイル/デスクトップ)
- オープンソースでプロファイル管理や設定の柔軟な拡張が可能
技術的なポイント
Stelliberty の技術的な魅力は、Flutter による豊かな UI と Rust による高性能なネットワーク処理を分担させるアーキテクチャにあります。リポジトリ内に Cargo.toml が存在することから、Rust 側は独立したクレートとして定義され、Clash の Mihomo コア(プロキシ処理・ルール解析・接続管理など)を担う設計です。Clash 系コアの特徴として YAML ベースの設定ファイルやルール(ドメイン、IP、ポートに基づく振り分け)、多様なプロトコル対応(Clash がサポートする主要プロトコル)といった要素が期待されます。
Flutter 側は UI、設定画面、プロファイル編集、接続のオン/オフ管理、ログや統計表示を担当します。Flutter と Rust の橋渡しはネイティブ連携(FFI)で行われるのが自然で、dart:ffi や flutter_rust_bridge のような技術を用いることで、低レイテンシかつ安全にコア機能を呼び出せます。ネイティブコードをバイナリとして組み込むことで、プラットフォーム固有の処理(Android の VPNService、iOS の NetworkExtension、あるいはデスクトップのローカルプロキシ設定)への対応も柔軟にできるはずです。
また、Rust を使う利点としてはメモリ安全性、並列処理の効率、低オーバーヘッドな I/O が挙げられます。ネットワーク処理を Rust 側で完結させることで、Flutter 側は UI に専念でき、全体のレスポンスや省電力性に寄与します。ビルド面ではクロスコンパイルやプラットフォームごとのバイナリ作成(Android NDK/iOS toolchain/Windows・macOS 用のビルド設定)が課題になりますが、Cargo.toml があることから Rust 開発環境への対応は既に意識された構成です。
セキュリティや運用面では、外部設定(プロファイル)の管理、ログの取り扱い、権限周り(VPN/ネットワーク拡張)の実装に注意が必要です。オープンソースであるため、カスタマイズや監査がしやすく、コミュニティによる拡張や最適化も期待できます。
プロジェクトの構成
主要なファイルとディレクトリ:
- .github: dir
- .gitignore: file
- .metadata: file
- Cargo.toml: file
- LICENSE: file
…他 11 ファイル
まとめ
Flutter × Rust で高性能なプロキシを目指す実用的なスターターキット。
リポジトリ情報:
- 名前: Stelliberty
- 説明: A modern proxy client built with Flutter and Rust, powered by Clash Mihomo core
- スター数: 47
- 言語: Dart
- URL: https://github.com/Kindness-Kismet/Stelliberty
- オーナー: Kindness-Kismet
- アバター: https://avatars.githubusercontent.com/u/150009830?v=4
READMEの抜粋: