Important
? Meshtastic Network Management Client a besoin d'un nouveau propriétaire / mainteneur de plate-forme?
Plus de détails sont disponibles dans le numéro 473.
Cette application est un client de bureau pour le projet Meshtastic, conçu pour permettre aux utilisateurs de gérer de manière fiable les grands réseaux de maillage décentralisés. Actuellement, l'écosystème client Meshtastic a un fort support pour la gestion des nœuds uniques, mais un support minimal pour la gestion et l'analyse au niveau du réseau. L'objectif de ce projet est de donner aux utilisateurs la confiance dans leurs réseaux de maillage en tant qu'infrastructure de communication fiable grâce à une nouvelle analyse algorithmique et à des informations au niveau de la connexion.

Cette application est construite à l'aide du framework Tauri, un successeur moderne et sécurisé du cadre électronique. Cela nous permet de prendre en charge nativement Linux, MacOS et Windows dans la même base de code sans les performances ou les frais généraux de mémoire d'un navigateur de chrome. Notre infrastructure d'application principale est écrite en rouille en raison de ses performances et de sa sécurité, et notre fonctionnalité d'interface utilisateur et de client est écrite en dactylographie React en utilisant VITE. Ce projet est en début de développement et, en tant que tel, ne convient pas encore à l'utilisation de la production .
Au moment de la rédaction du moment de la rédaction, ce projet est actuellement maintenu par un seul développeur. En tant que tel, le projet est à la recherche de développeurs disposés à contribuer ou à prendre la tête des principales initiatives suivantes:
Ce projet est encore en début de développement, mais voici une feuille de route approximative sur laquelle nous travaillons. Nous accordons une priorité élevée à l'obtention de notre infrastructure principale, car c'est le cœur de toute couche d'interface utilisateur robuste et efficace.
Ce projet est construit sur l'écosystème matériel de maillage et, en tant que tel, ce client exige que vous ayez accès à une radio Meshtastic. Cela peut changer à l'avenir, mais pour le moment, être une radio physique est nécessaire pour utiliser ce client.
J'ai écrit ici quelques recommandations matérielles personnelles.
Ce projet est construit en TypeScript Rust and React, et géré à l'aide du gestionnaire de packages PNPM. En tant que tel, ce projet exige que les programmes suivants soient installés sur votre machine de développement:
Pour exécuter ce projet localement, suivez les étapes ci-dessous:
git clone https://github.com/meshtastic/network-management-client.gitgit submodule update --initpnpm ipnpm run rust:dev . L'application doit compiler avec succès et vous devriez voir l'application s'ouvrir avec succès. Si ce processus échoue pour vous, faites-le nous savoir!Bien que ce projet puisse être développé dans n'importe quel éditeur de texte, nous recommandons l'éditeur de code Visual Studio. Si vous utilisez VSCODE, nous vous recommandons fortement d'installer les extensions de code Visual Studio suivantes. Ces extensions appliquent à la fois le style de code et permettent la prise en charge du langage et du cadre de notre pile technologique.
Certaines extensions facultatives qui ne sont pas nécessaires, mais nous trouvons très utiles:
Pour normaliser notre flux de développement, nous utilisons des commandes PNPM, définies dans package.json . Ces commandes peuvent être exécutées avec le pnpm run NAME ...ARGS . Nos commandes sont divisées en deux catégories primaires, rust:* Commandes et ui:* Commandes. Les commandes rust:* Exécutent toute l'application de bureau, où les commandes ui:* exécutent uniquement la couche d'interface utilisateur.
Remarque: Nous recommandons fortement contre l'utilisation de l'
ui:devetui:builddes commandes manuellement. Ces commandes sont invoquées en interne par larust:devetrust:buildCommandes, respectivement. Vous ne pourrez pas vous connecter à un DevCE série lors de l'exécution de la commandeui:dev, car cette logique n'est pas gérée dans la couche d'interface utilisateur.
Nous travaillons actuellement pour ajouter une prise en charge du cadre du livre de contes, qui permettra aux contributeurs de développer des composants d'interface utilisateur sans exécuter toute l'application de bureau.
pnpm run rust:dev - démarre l'application de bureau en mode développement, permettant un rechargement chaud de l'interface utilisateur et du code de rouille
pnpm run rust:build - Créez l'application de bureau en mode de production pour votre architecture système. Actuellement, nous utilisons cette commande uniquement pour tester l'analyseur d'argument CLI de notre application.
pnpm run rust:test - Effectue des tests backend sur le répertoire de base de code Rust ( /src-tauri ). Cette commande génère également des liaisons client TypeScript dans le répertoire /src-tauri/bindings . Ajouter -- --show-output pour montrer la rouille println! appels macro dans les suites de tests.
pnpm run ui:dev - démarre le serveur de développement d'interface utilisateur, permettant le développement de l'interface utilisateur dans un environnement de navigateur. Notez que tout code qui interface avec le backend Rust ne fonctionnera pas dans cet environnement de navigateur, ce qui signifie que vous ne pourrez pas vous connecter à des appareils série dans ce contexte
pnpm run ui:build : - Exécute une construction de production sur le code d'interface utilisateur dans le répertoire dist
pnpm run ui:lint - utilise Eslint pour vérifier les erreurs de style de code. Notez que notre pipeline CI nécessite que cette commande réussit avant que toute modification puisse être fusionnée
pnpm run ui:format - Formats La base de code d'interface utilisateur en utilisant plus de plus de plus de plus et d'Eslint. Nous vous recommandons fortement d'exécuter ceci avant de créer un PR!
pnpm run ui:test - Exécute la suite de tests d'interface utilisateur en utilisant Jest. Actuellement, le projet n'a pas de suite de tests d'interface utilisateur, mais nous sommes très ouverts aux contributions!
(déprécié)pnpm run ui:preview - Exécute l'interface utilisateur construite à partir du répertoire dist . Cette commande doit être exécutée après ui:build
Remarque: Sur Linux, votre utilisateur peut ne pas avoir la permission d'accéder à un port série donné. Si cela se produit, vous devrez probablement ajouter votre utilisateur au groupe qui contrôle le port série auquel vous souhaitez accéder. Vous pouvez trouver le groupe qui contrôle un port série via la commande
ls -ld PATH_TO_PORT_HERE. Vous pouvez ajouter votre utilisateur à ce groupe via la commandeusermod -a -G GROUP_NAME_HERE $USER.
Comme nous sommes encore très tôt dans le développement, nous n'avons pas encore de cadre standardisé pour accepter les contributions. Cela étant dit, nous sommes très ouverts aux suggestions et / ou aux modifications de code! Si vous souhaitez contribuer à ce référentiel, nous vous demandons de vérifier d'abord notre conseil d'administration pour vous assurer que votre travail ne reproduisait pas le travail des autres. Ensuite, veuillez faire un problème sur notre conseil d'administration afin que nous sachions sur quoi vous souhaitez travailler. Si vous avez des questions sur le projet, nous serions ravis de vous entendre!