Wichtig
? Meshtastic Network Management Client benötigt einen neuen Plattform -Eigentümer / -verwalter?
Weitere Details finden Sie in Ausgabe Nr. 473.
Diese Anwendung ist ein Desktop -Client für das Meshtastic -Projekt, mit dem Benutzer große, dezentrale Netznetzwerke zuverlässig verwalten können. Derzeit bietet das Meshtastic Client-Ökosystem eine starke Unterstützung für die Verwaltung einzelner Knoten, jedoch nur eine minimale Unterstützung für das Management und die Analyse auf Netzwerkebene. Ziel dieses Projekts ist es, den Benutzern durch neue algorithmische Analyse und Erkenntnisse auf Verbindungsebene in ihre Meshtastic-Netzwerke vertrauen.

Diese Anwendung wird mit dem Tauri -Framework erstellt, einem modernen, sicheren Nachfolger des Elektronengerüsts. Dies ermöglicht es uns, Linux, MacOS und Windows innerhalb derselben Codebasis ohne Leistung oder Speicheraufwand eines Chrombrowsers nativ zu unterstützen. Unsere Kernanwendungsinfrastruktur ist aufgrund ihrer Leistung und Sicherheit in Rost geschrieben, und unsere UI- und Client -Funktionalität wird in React TypeScript unter Verwendung von VITE geschrieben. Dieses Projekt befindet sich in frühen Entwicklungsstadien und ist als solche noch nicht für die Produktionsnutzung geeignet .
Zum Zeitpunkt des Schreibens wird dieses Projekt derzeit von einem einzelnen Entwickler aufrechterhalten. Daher sucht das Projekt nach Entwicklern, die bereit sind, die folgenden wichtigen Initiativen beizutragen oder diese zu übernehmen:
Dieses Projekt befindet sich noch in frühen Entwicklungsstadien, aber hier ist eine grobe Roadmap von Funktionen, an denen wir arbeiten. Wir haben eine hohe Priorität, wenn wir unsere Kerninfrastruktur richtig machen, da dies der Kern einer robusten und effektiven UI -Schicht ist.
Dieses Projekt basiert auf dem Meshtastic -Hardware -Ökosystem. Aus diesem Fall verlangt dieser Client, dass Sie Zugriff auf ein Meshtastic -Radio haben. Dies kann sich in Zukunft ändern, aber vorerst ist ein physisches Radio erforderlich, um diesen Kunden zu verwenden.
Ich habe hier einige persönliche Hardwareempfehlungen geschrieben.
Dieses Projekt ist in Rost- und React -Typscript integriert und mit dem PNPM -Paketmanager verwaltet. In diesem Projekt müssen die folgenden Programme auf Ihrem Entwicklungsgerät installiert werden:
Um dieses Projekt lokal auszuführen, befolgen Sie die folgenden Schritte:
git clone https://github.com/meshtastic/network-management-client.git erfolgengit submodule update --initpnpm ipnpm run rust:dev . Die Anwendung sollte erfolgreich zusammengestellt werden, und Sie sollten die Anwendung erfolgreich geöffnet sehen. Wenn dieser Vorgang für Sie fehlschlägt, lassen Sie es uns bitte wissen!Während dieses Projekt in jedem Texteditor entwickelt werden kann, empfehlen wir den Visual Studio Code Editor. Bei Verwendung von VSCODE empfehlen wir dringend, die folgenden Visual Studio -Code -Erweiterungen zu installieren. Diese Erweiterungen erzwingen den Code -Stil und ermöglichen die Sprach- und Framework -Unterstützung für unseren Tech -Stapel.
Einige optionale Erweiterungen, die nicht erforderlich sind, aber wir finden sehr hilfreich:
Um unseren Entwicklungsfluss zu standardisieren, verwenden wir PNPM -Befehle, die in package.json definiert sind. Diese Befehle können mit dem pnpm run NAME ...ARGS Syntax. Unsere Befehle werden in zwei primäre Kategorien unterteilt, rust:* Befehle und ui:* -Fandte. Die Befehle rust:* Führen Sie die gesamte Desktop -Anwendung aus, wobei die ui:* Befehle nur die UI -Ebene ausführen.
HINWEIS: Wir empfehlen dringend gegen die Verwendung der
ui:devundui:build. Diese Befehle werden intern vomrust:devundrust:buildaufgerufen. Sie können beim Ausführen des Befehlsui:devkeine herstellen, da diese logik nicht in der ui -Ebene behandelt wird.
Wir arbeiten derzeit daran, Unterstützung für das Storybook -Framework hinzuzufügen, mit dem die Mitwirkenden UI -Komponenten entwickeln können, ohne die gesamte Desktop -Anwendung auszuführen.
pnpm run rust:dev - Startet die Desktop -Anwendung im Entwicklungsmodus und ermöglicht das heiße Nachladen von UI und Rostcode
pnpm run rust:build - Erstellt die Desktop -Anwendung im Produktionsmodus für Ihre Systemarchitektur. Derzeit verwenden wir diesen Befehl nur zum Testen des CLI -Arguments unserer Anwendung.
pnpm run rust:test - Führen Sie Backend -Tests im Rust -Codebasis -Verzeichnis ( /src-tauri ) aus. Dieser Befehl generiert auch TypeScript-Client-Bindungen im Verzeichnis /src-tauri/bindings . Fügen Sie -- --show-output um Rust println! Makroanrufe in Testsuiten.
pnpm run ui:dev - Startet den UI -Entwicklungsserver und ermöglicht die UI -Entwicklung in einer Browserumgebung. Beachten Sie, dass jeder Code, der mit dem Rost -Backend die Schnittstelle in dieser Browser -Umgebung fällt, nicht funktionieren , was bedeutet, dass Sie in diesem Zusammenhang keine Verbindung zu seriellen Geräten herstellen können
pnpm run ui:build : - Führen Sie einen Produktionsaufbau auf dem UI -Code in das dist -Verzeichnis aus
pnpm run ui:lint - verwendet ESLINT, um nach Codestilfehlern zu suchen. Beachten Sie, dass unsere CI -Pipeline erfordert, dass dieser Befehl erfolgreich ist, bevor Änderungen zusammengeführt werden können
pnpm run ui:format - Format der UI -Codebasis mit hübscherem und Eslint. Wir empfehlen Ihnen dringend, dies auszuführen, bevor wir eine PR erstellen!
pnpm run ui:test - Führen Sie die UI -Testsuite mit Scherz aus. Derzeit hat das Projekt keine UI -Testsuite, aber wir sind sehr offen für Beiträge!
(veraltet)pnpm run ui:preview - Läuft die gebaute Benutzeroberfläche aus dem dist -Verzeichnis. Dieser Befehl muss nach ui:build
Hinweis: Unter Linux hat Ihr Benutzer möglicherweise keine Berechtigung, auf einen bestimmten seriellen Port zugreifen zu können. In diesem Fall müssen Sie Ihren Benutzer wahrscheinlich der Gruppe hinzufügen, die den seriellen Port steuert, auf den Sie zugreifen möchten. Sie finden die Gruppe, die einen seriellen Port über den Befehl
ls -ld PATH_TO_PORT_HEREsteuert. Sie können Ihren Benutzer dieser Gruppe über den Befehlusermod -a -G GROUP_NAME_HERE $USERaddieren.
Da wir noch sehr früh in der Entwicklung sind, haben wir noch keinen standardisierten Rahmen für die Akzeptanz von Beiträgen. Abgesehen davon sind wir sehr offen für Vorschläge und/oder Codeänderungen! Wenn Sie daran interessiert sind, zu diesem Repository beizutragen, bitten wir Sie, unser Ausgabenausschuss zuerst zu überprüfen, um sicherzustellen, dass Ihre Arbeit die Arbeit anderer nicht dupliziert. Machen Sie dann bitte ein Problem in unserem Vorstand, damit wir wissen, woran Sie daran interessiert sind. Wenn Sie Fragen zum Projekt haben, würden wir gerne von Ihnen hören!