Importante
? O cliente de gerenciamento de rede mehtasta precisa de um novo proprietário / mantenedor da plataforma?
Mais detalhes estão disponíveis na edição nº 473.
Este aplicativo é um cliente de desktop para o projeto Meshtastic, projetado para permitir que os usuários gerenciem com segurança as grandes redes de malha descentralizadas. Atualmente, o ecossistema de clientes mehtastic tem um forte suporte para gerenciar nós únicos, mas suporte mínimo para gerenciamento e análise no nível da rede. O objetivo deste projeto é dar aos usuários confiança em suas redes meshtastic como uma infraestrutura de comunicações confiáveis por meio de novas análises algorítmicas e insights no nível da conexão.

Este aplicativo foi criado usando a estrutura Tauri, um sucessor moderno e seguro da estrutura de elétrons. Isso nos permite suportar nativamente Linux, MacOS e Windows na mesma base de código sem a sobrecarga de desempenho ou memória de um navegador de cromo. Nossa infraestrutura principal de aplicativos é escrita em ferrugem devido ao seu desempenho e segurança, e nossa funcionalidade da interface do usuário e do cliente é escrita no React Typescript usando o Vite. Este projeto está em estágios iniciais de desenvolvimento e, como tal , ainda não é adequado para o uso da produção .
No momento da redação deste artigo, este projeto é atualmente mantido por um único desenvolvedor. Como tal, o projeto está procurando desenvolvedores dispostos a contribuir ou assumir a liderança nas seguintes iniciativas principais:
Este projeto ainda está em estágios iniciais de desenvolvimento, mas aqui está um roteiro difícil de funcionalidade em que estamos trabalhando. Estamos dando uma alta prioridade em acertar nossa infraestrutura principal, pois esse é o núcleo de qualquer camada de interface do usuário robusta e eficaz.
Este projeto é construído no ecossistema de hardware meshtastic e, como tal, esse cliente exige que você tenha acesso a um rádio mehtastic. Isso pode mudar no futuro, mas, por enquanto, é necessário um rádio físico para usar esse cliente.
Eu escrevi algumas recomendações pessoais de hardware aqui.
Este projeto é construído em Rust e React TypeScript e gerenciado usando o gerenciador de pacotes PNPM. Como tal, este projeto exige que os seguintes programas sejam instalados em sua máquina de desenvolvimento:
Para executar este projeto localmente, siga as etapas abaixo:
git clone https://github.com/meshtastic/network-management-client.gitgit submodule update --initpnpm ipnpm run rust:dev . O aplicativo deve compilar com sucesso e você deve ver o aplicativo aberto com sucesso. Se esse processo falhar para você, informe -nos!Embora este projeto possa ser desenvolvido em qualquer editor de texto, recomendamos o editor de código do Visual Studio. Se estiver usando o VSCode, recomendamos fortemente que você instale as seguintes extensões de código do Visual Studio. Essas extensões aplicam o estilo de código e permitem suporte de linguagem e estrutura para nossa pilha de tecnologia.
Algumas extensões opcionais que não são necessárias, mas achamos muito úteis:
Para padronizar nosso fluxo de desenvolvimento, utilizamos comandos PNPM, definidos no package.json . Esses comandos podem ser executados com o pnpm run NAME ...ARGS Sintaxe. Nossos comandos são divididos em duas categorias primárias, rust:* Comandos e ui:* Comandos. Os comandos rust:* executam o aplicativo de desktop inteiro, onde os comandos ui:* executam apenas a camada da interface do usuário.
Nota: Recomendamos fortemente o uso da
ui:deveui:buildcomandos manualmente. Esses comandos são invocados internamente pelarust:deverust:buildComandos, respectivamente. Você não poderá se conectar a um devce serial ao executar o comando de interfaceui:dev, pois essa lógica não é tratada na camada da interface do usuário.
No momento, estamos trabalhando para adicionar suporte à estrutura do Storybook, que permitirá que os colaboradores desenvolvam componentes da interface do usuário sem executar todo o aplicativo de desktop.
pnpm run rust:dev - Inicia o aplicativo de desktop no modo de desenvolvimento, permitindo recarregamento a quente da interface do usuário e código de ferrugem
pnpm run rust:build - Construa o aplicativo de desktop no modo de produção para sua arquitetura do sistema. Atualmente, usamos apenas esse comando para testar o analisador de argumentos da CLI do nosso aplicativo.
pnpm run rust:test - Executa testes de back -end no diretório da base de código Rust ( /src-tauri ). Este comando também gera ligações do cliente TypeScript no diretório /src-tauri/bindings . Adicione -- --show-output para mostrar a Rust println! Macro chama nas suítes de teste.
pnpm run ui:dev - inicia o servidor de desenvolvimento da interface do usuário, permitindo o desenvolvimento da interface do usuário em um ambiente de navegador. Observe que qualquer código que interface com o back -end da ferrugem não funcionará nesse ambiente do navegador, o que significa que você não poderá se conectar a dispositivos seriais neste contexto
pnpm run ui:build : - Executa uma produção de produção no código da interface do usuário no diretório dist
pnpm run ui:lint - usa ESLint para verificar os erros de estilo de código. Observe que nosso pipeline de IC exige que esse comando seja bem -sucedido antes que qualquer alteração possa ser mesclada
pnpm run ui:format - formato a base de código da interface do usuário usando o Prettier e o Eslint. Recomendamos fortemente que você execute isso antes de criar um PR!
pnpm run ui:test - Executa o conjunto de testes da interface do usuário usando o JEST. Atualmente, o projeto não possui uma suíte de teste de interface do usuário, mas estamos muito abertos a contribuições!
(descontinuado)pnpm run ui:preview - Executa a interface do usuário construída no diretório dist . Este comando deve ser executado após ui:build
Nota: No Linux, seu usuário pode não ter permissão para acessar uma determinada porta serial. Se isso acontecer, você provavelmente precisará adicionar seu usuário ao grupo que controla a porta serial que deseja acessar. Você pode encontrar o grupo que controla uma porta serial através do comando
ls -ld PATH_TO_PORT_HERE. Você pode adicionar seu usuário a este grupo através do comandousermod -a -G GROUP_NAME_HERE $USER.
Como ainda estamos muito cedo no desenvolvimento, ainda não temos uma estrutura padronizada para aceitar contribuições. Dito isto, estamos muito abertos a sugestões e/ou alterações de código! Se você estiver interessado em contribuir para este repositório, pediríamos que você verifique primeiro nosso quadro de problemas para garantir que seu trabalho não esteja duplicando o trabalho de outras pessoas. Em seguida, faça um problema em nosso quadro para sabermos no que você está interessado em trabalhar. Se você tiver alguma dúvida sobre o projeto, gostaríamos de ouvir de você!