Важный
? Клиент Meshtastic Network Management нуждается в новой владельце / сопровождающем платформы?
Более подробная информация доступна в выпуске № 473.
Это приложение является настольным клиентом для мештастичного проекта, предназначенного для того, чтобы пользователи могли надежно управлять крупными децентрализованными сетками. В настоящее время мештастичная клиентская экосистема обладает сильной поддержкой для управления отдельными узлами, но минимальной поддержкой управления и анализа сетевого уровня. Цель этого проекта состоит в том, чтобы дать пользователям уверенность в их мештастичных сетях в качестве надежной инфраструктуры связи посредством нового алгоритмического анализа и понимания уровня соединения.

Это приложение построено с использованием структуры Tauri, современного, безопасного преемника электронного фреймворка. Это позволяет нам изначально поддерживать Linux, MacOS и Windows в той же кодовой базе без производительности или накладных расходов на память браузера Chromium. Наша основная инфраструктура приложений написана в Rust из -за ее производительности и безопасности, а наша функциональность пользовательского интерфейса и клиента написана в REACT TypeScript с использованием VITE. Этот проект находится на ранних стадиях разработки, и поэтому еще не подходит для использования в производстве .
На момент написания этого проекта в настоящее время поддерживается одним разработчиком. Таким образом, проект ищет разработчиков, желающих внести свой вклад или взять на себя инициативу по следующим основным инициативам:
Этот проект все еще находится на ранних стадиях развития, но вот грубая дорожная карта функциональности, над которой мы работаем. Мы уделяем высокий приоритет в том, чтобы сделать нашу основную инфраструктуру правильно, поскольку это является ядром любого надежного и эффективного уровня пользовательского интерфейса.
Этот проект построен на мештастичной аппаратной экосистеме, и поэтому этот клиент требует, чтобы у вас был доступ к мештастичному радио. Это может измениться в будущем, но для использования этого клиента требуется физическое радио.
Я написал здесь несколько личных рекомендаций по аппаратному обеспечению.
Этот проект построен в TypeScript Rust и React и управляется с помощью диспетчера пакетов PNPM. Таким образом, этот проект требует, чтобы следующие программы были установлены на вашей машине разработки:
Чтобы запустить этот проект локально, выполните следующие шаги:
git clone https://github.com/meshtastic/network-management-client.gitgit submodule update --initpnpm ipnpm run rust:dev . Приложение должно успешно компилировать, и вы должны успешно увидеть приложение. Если этот процесс не удается для вас, пожалуйста, сообщите нам об этом!Хотя этот проект может быть разработан в любом текстовом редакторе, мы рекомендуем редактор кода Visual Studio. При использовании VSCODE мы настоятельно рекомендуем вам установить следующие расширения кода Visual Studio. Эти расширения обеспечивают соблюдение стиля кода и обеспечивают поддержку языка и фреймворки для нашего технологического стека.
Некоторые дополнительные расширения, которые не требуются, но мы находим очень полезными:
Для стандартизации нашего потока разработки мы используем команды PNPM, определенные в package.json . Эти команды можно запустить с помощью pnpm run NAME ...ARGS . Наши команды разбиты на две основные категории, rust:* Команды и ui:* Команды. Команды rust:* Запускают все настольное приложение, где команды ui:* только запускают слой пользовательского интерфейса.
Примечание: мы настоятельно рекомендуем использовать
ui:devиui:buildвручную. Эти команды используются внутренне из -заrust:devиrust:build: соответственно. Вы не сможете подключиться к последовательному DEVCE при запуске командыui:dev, так как эта логика не обрабатывается в слое пользовательского интерфейса.
В настоящее время мы работаем над тем, чтобы добавить поддержку Framework, которая позволит участникам разрабатывать компоненты пользовательского интерфейса без запуска всего настольного приложения.
pnpm run rust:dev - Запускает настольное приложение в режиме разработки, что позволяет горячая перезагрузка пользовательского интерфейса и кода ржавчины
pnpm run rust:build - Создает настольное приложение в производственном режиме для вашей системной архитектуры. В настоящее время мы используем эту команду только для тестирования анализатора аргумента нашего приложения.
pnpm run rust:test - запускает тесты на бэкэнд в каталоге кодовой базы Rust ( /src-tauri ). Эта команда также генерирует клиентские привязки TypeScript в каталоге /src-tauri/bindings . Добавить -- --show-output , чтобы показать Rust println! Макро вызовы в тестовых люксах.
pnpm run ui:dev - запускает сервер разработки пользовательского интерфейса, позволяя разработать пользовательский интерфейс в среде браузера. Обратите внимание, что любой код, который взаимодействует с бэкэнд Rust, не будет функционировать в этой среде браузера, что означает, что вы не сможете подключиться к последовательным устройствам в этом контексте
pnpm run ui:build : - Запуск производственной сборки на код пользовательского интерфейса в dist Directory
pnpm run ui:lint - использует Eslint для проверки ошибок в стиле кода. Обратите внимание, что наш трубопровод CI требует, чтобы эта команда преуспела, прежде чем любые изменения могут быть объединены
pnpm run ui:format - Форматирует кодовую базу пользовательского интерфейса, используя краситель и Eslint. Мы настоятельно рекомендуем вам запустить это перед созданием PR!
pnpm run ui:test - Запустит набор для пользовательского интерфейса с использованием Jest. В настоящее время у проекта нет набора тестирования пользовательского интерфейса, но мы очень открыты для вкладов!
(устарело)pnpm run ui:preview - запускает встроенный пользовательский интерфейс из dist Directory. Эта команда должна быть запущена после ui:build
Примечание. На Linux ваш пользователь может не иметь разрешения на доступ к данному последовательному порту. Если это произойдет, вам, вероятно, потребуется добавить вашего пользователя в группу, которая управляет последовательным портом, к которому вы хотите получить доступ. Вы можете найти группу, которая управляет последовательным портом через команду
ls -ld PATH_TO_PORT_HERE. Вы можете добавить своего пользователя в эту группу через командуusermod -a -G GROUP_NAME_HERE $USER.
Поскольку мы все еще очень рано в разработке, у нас еще нет стандартизированной основы для принятия взносов. При этом мы очень открыты для предложений и/или изменений кода! Если вы заинтересованы в участии в этом хранилище, мы бы попросили вас сначала проверить нашу доску проблем, чтобы ваша работа не дублировала работу других. Затем, пожалуйста, сделайте проблему на нашем доске, чтобы мы знали, над чем вы заинтересованы в работе. Если у вас есть какие -либо вопросы о проекте, мы хотели бы услышать от вас!