重要
? Meshtastic Network Managementクライアントには、新しいプラットフォームの所有者 /メンテナーが必要ですか?
詳細については、第473号をご覧ください。
このアプリケーションは、ユーザーが大規模で分散化されたメッシュネットワークを確実に管理できるように設計されたMeshTasticプロジェクトのデスクトップクライアントです。現在、Meshtastic Client Ecosystemは、単一のノードの管理に強力なサポートを受けていますが、ネットワークレベルの管理と分析に対する最小限のサポートです。このプロジェクトの目標は、新しいアルゴリズム分析と接続レベルの洞察を通じて、信頼できるコミュニケーションインフラストラクチャとしてのメシュタスティックネットワークに対する自信をユーザーに与えることです。

このアプリケーションは、電子フレームワークの近代的で安全な後継者であるタウリフレームワークを使用して構築されています。これにより、クロムブラウザのパフォーマンスまたはメモリオーバーヘッドなしで、同じコードベース内のLinux、macos、およびWindowsをネイティブにサポートできます。当社のコアアプリケーションインフラストラクチャは、そのパフォーマンスと安全性のためにRustで記述されており、UIとクライアントの機能はViteを使用してReact TypeScriptで記述されています。このプロジェクトは開発の初期段階にあり、そのため、生産の使用にはまだ適していません。
執筆時点では、このプロジェクトは現在、単一の開発者によって維持されています。そのため、このプロジェクトは、次の主要なイニシアチブに貢献したり、リードしたりすることをいとわない開発者を探しています。
このプロジェクトはまだ開発の初期段階にありますが、ここに私たちが取り組んでいる機能の大まかなロードマップがあります。これは、堅牢で効果的なUIレイヤーのコアであるため、コアインフラストラクチャを正しくすることを優先しています。
このプロジェクトは、Meshtastic Hardware Ecosystemに基づいて構築されているため、このクライアントでは、メシュタスティックラジオにアクセスできるように必要です。これは将来変化する可能性がありますが、当面はこのクライアントを使用するには物理的なラジオが必要です。
ここに個人的なハードウェアの推奨事項をいくつか書きました。
このプロジェクトは、RustおよびReact Typescriptで構築され、PNPMパッケージマネージャーを使用して管理されています。そのため、このプロジェクトでは、次のプログラムを開発マシンにインストールする必要があります。
このプロジェクトをローカルに実行するには、以下の手順に従ってください。
git clone https://github.com/meshtastic/network-management-client.gitを実行することで実行できますgit submodule update --initpnpm iにインストールしますpnpm run rust:devコマンドでインストールを確認します。アプリケーションは正常にコンパイルする必要があり、アプリケーションが正常に開いていることがわかります。このプロセスが失敗した場合は、お知らせください!このプロジェクトは任意のテキストエディター内で開発できますが、Visual Studioコードエディターをお勧めします。 VSCODEを使用している場合は、次のVisual Studioコード拡張機能をインストールすることを強くお勧めします。これらの拡張機能は、コードスタイルを強制し、技術スタックの言語とフレームワークのサポートを有効にします。
不要ですが、非常に役立つと思われるいくつかのオプションの拡張機能:
開発フローを標準化するために、 package.jsonで定義されているPNPMコマンドを利用します。これらのコマンドはpnpm run NAME ...ARGS構文。私たちのコマンドは、 rust:*コマンドとui:*コマンドの2つの主要なカテゴリに分類されます。 rust:*コマンドは、 ui:*コマンドがUIレイヤーのみを実行するデスクトップアプリケーション全体を実行します。
注:
ui:devおよびui:buildCommandsを手動で使用することを強くお勧めします。これらのコマンドはrust:devとrust:buildCommandsによって内部的に呼び出されます。このロジックはUIレイヤーでは処理されないため、ui:devコマンドを実行するときにシリアルDevceに接続することはできません。
現在、Storybook Frameworkのサポートを追加するために取り組んでいます。これにより、貢献者はデスクトップアプリケーション全体を実行せずにUIコンポーネントを開発できます。
pnpm run rust:dev開発モードでデスクトップアプリケーションを起動し、UIと錆コードのホットリロードを可能にします
pnpm run rust:build - システムアーキテクチャの生産モードでデスクトップアプリケーションを構築します。現在、このコマンドを使用して、アプリケーションのCLI引数パーサーをテストしています。
pnpm run rust:test - rustコードベースディレクトリ( /src-tauri )でバックエンドテストを実行します。このコマンドは/src-tauri/bindingsディレクトリにタイプスクリプトクライアントバインディングを生成します。追加-- --show-output Rust println!テストスイート内のマクロ呼び出し。
pnpm run ui:dev UI開発サーバーを起動し、ブラウザ環境でUI開発を可能にします。 Rust Backendとインターフェイスするコードは、このブラウザ環境内で機能しないことに注意してください。つまり、このコンテキストではシリアルデバイスに接続できないことを意味します。
pnpm run ui:build : - distコードで生産ビルドを実行する
pnpm run ui:lint -eslintを使用してコードスタイルのエラーを確認します。 CIパイプラインでは、変更をマージする前にこのコマンドが成功する必要があることに注意してください
pnpm run ui:format -ui codebaseをprettierとeslintを使用してフォーマットします。 PRを作成する前に、これを実行することを強くお勧めします!
pnpm run ui:test - JESTを使用してUIテストスイートを実行します。現在、このプロジェクトにはUIテストスイートがありませんが、貢献に対して非常にオープンです!
(非推奨)pnpm run ui:preview - distディレクトリからビルドUIを実行します。このコマンドはui:buildの後に実行する必要があります
注: Linuxでは、ユーザーが特定のシリアルポートにアクセスする許可がない場合があります。これが発生した場合、アクセスするシリアルポートを制御するグループにユーザーを追加する必要があります。
ls -ld PATH_TO_PORT_HEREコマンドを介してシリアルポートを制御するグループを見つけることができます。usermod -a -G GROUP_NAME_HERE $USERコマンドを介して、このグループにユーザーを追加できます。
私たちはまだ開発の非常に早い段階であるため、貢献を受け入れるための標準化されたフレームワークはまだありません。そうは言っても、私たちは提案やコードの変更に対して非常にオープンです!このリポジトリに貢献することに興味がある場合は、最初に問題委員会をチェックして、他の人の仕事を複製しないようにすることをお願いします。次に、あなたが取り組んでいることを知っているので、私たちのボードで問題を抱えてください。プロジェクトについて質問がある場合は、ご連絡をお待ちしております。