중요한
? Meshtastic Network Management 클라이언트는 새로운 플랫폼 소유자 / 관리자가 필요합니까?
자세한 내용은 이슈 #473에서 확인할 수 있습니다.
이 응용 프로그램은 Meshtastic Project의 데스크탑 클라이언트로, 사용자가 대규모로 분산 된 메쉬 네트워크를 안정적으로 관리 할 수 있도록 설계되었습니다. 현재 Meshtastic Client Ecosystem은 단일 노드 관리를 강력하게 지원하지만 네트워크 수준 관리 및 분석에 대한 최소한의 지원을 제공합니다. 이 프로젝트의 목표는 새로운 알고리즘 분석 및 연결 수준의 통찰력을 통해 신뢰할 수있는 커뮤니케이션 인프라로서 Meshtastic Network에 대한 사용자에게 자신감을 부여하는 것입니다.

이 응용 프로그램은 전자 프레임 워크의 현대적이고 안전한 후속 인 Tauri 프레임 워크를 사용하여 구축됩니다. 이를 통해 크롬 브라우저의 성능 또는 메모리 오버 헤드없이 동일한 코드베이스 내의 Linux, MacOS 및 Windows를 기본적으로 지원할 수 있습니다. 우리의 핵심 애플리케이션 인프라는 성능과 안전성으로 인해 Rust로 작성되었으며 UI 및 클라이언트 기능은 VITE를 사용하여 React TypeScript로 작성됩니다. 이 프로젝트는 개발 초기 단계에 있으며 아직 생산 사용에 적합하지 않습니다 .
글을 쓰는 시점 에서이 프로젝트는 현재 단일 개발자가 유지 관리합니다. 따라서이 프로젝트는 다음과 같은 주요 이니셔티브에 기꺼이 기여하거나 주도 할 개발자를 찾고 있습니다.
이 프로젝트는 여전히 개발 초기 단계에 있지만 여기서 우리가 작업중 인 기능의 대략적인 로드맵이 있습니다. 우리는 강력하고 효과적인 UI 계층의 핵심이기 때문에 핵심 인프라를 올바르게 얻는 데 우선 순위가 높습니다.
이 프로젝트는 Meshtastic Hardware Ecosystem을 기반으로 구축 되므로이 클라이언트는 Meshtastic Radio에 액세스 할 수 있어야합니다. 이것은 미래에 변할 수 있지만,이 클라이언트를 사용하려면 당분간 물리적 라디오가 필요합니다.
여기에 개인 하드웨어 권장 사항을 작성했습니다.
이 프로젝트는 Rust and React TypeScript로 내장되어 있으며 PNPM 패키지 관리자를 사용하여 관리했습니다. 따라서이 프로젝트는 개발 기계에 다음 프로그램을 설치해야합니다.
이 프로젝트를 로컬로 운영하려면 아래 단계를 따르십시오.
git clone https://github.com/meshtastic/network-management-client.git 실행하여 수행 할 수 있습니다git submodule update --initpnpm ipnpm run rust:dev 명령으로 설치를 확인하십시오. 응용 프로그램은 성공적으로 컴파일해야하며 응용 프로그램이 성공적으로 열려 있어야합니다. 이 프로세스가 실패하면 알려주십시오!이 프로젝트는 모든 텍스트 편집기 내에서 개발 될 수 있지만 Visual Studio Code 편집기를 추천합니다. VSCODE를 사용하는 경우 다음 비주얼 스튜디오 코드 확장을 설치하는 것이 좋습니다. 이러한 확장은 코드 스타일을 시행하고 기술 스택에 대한 언어 및 프레임 워크 지원을 가능하게합니다.
필요하지 않지만 우리는 매우 도움이되는 일부 선택적인 확장자입니다.
개발 흐름을 표준화하기 위해 package.json 에 정의 된 PNPM 명령을 사용합니다. 이 명령은 pnpm run NAME ...ARGS 구문으로 실행할 수 있습니다. 우리의 명령은 두 가지 주요 범주 인 rust:* 명령 및 ui:* 명령으로 나뉩니다. rust:* 명령은 전체 데스크탑 응용 프로그램을 실행합니다. 여기서 ui:* 명령은 UI 계층 만 실행합니다.
참고 :
ui:dev및ui:build명령을 수동으로 사용하는 것을 강력히 권장합니다. 이 명령은rust:devandrust:build명령에 의해 각각 내부적으로 호출됩니다.ui:dev명령을 실행할 때는 연속 Devce에 연결할 수 없습니다 .이 논리는 UI 계층에서 처리되지 않으므로.
우리는 현재 스토리 북 프레임 워크에 대한 지원을 추가하기 위해 노력하고 있으며,이를 통해 전체 데스크탑 응용 프로그램을 실행하지 않고도 UI 구성 요소를 개발할 수 있습니다.
pnpm run rust:dev 개발 모드에서 데스크탑 응용 프로그램을 시작하여 UI 및 Rust 코드를 핫로드 할 수 있습니다.
pnpm run rust:build - 시스템 아키텍처를 위해 프로덕션 모드에서 데스크탑 응용 프로그램을 구축합니다. 현재 우리는 응용 프로그램의 CLI 인수 파서를 테스트하기 위해이 명령 만 사용합니다.
pnpm run rust:test Rust CodeBase 디렉토리 ( /src-tauri )에서 백엔드 테스트를 실행합니다. 이 명령은 또한 /src-tauri/bindings 디렉토리에서 TypeScript 클라이언트 바인딩을 생성합니다. add -- --show-output Rust println! 매크로는 테스트 스위트 내에서 전화합니다.
pnpm run ui:dev UI 개발 서버를 시작하여 브라우저 환경에서 UI 개발을 허용합니다. Rust Backend와 인터페이스하는 모든 코드는이 브라우저 환경 내에서 작동하지 않으므로이 맥락에서 직렬 장치에 연결할 수 없습니다.
pnpm run ui:build : - UI 코드에서 dist 디렉토리로 생산 빌드를 실행합니다.
pnpm run ui:lint eslint를 사용하여 코드 스타일 오류를 확인합니다. CI 파이프 라인은 변경 사항을 병합하기 전에이 명령에 성공해야합니다.
pnpm run ui:format - 형식은 Pretier 및 Eslint를 사용하여 UI 코드베이스를 형식화합니다. 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명령을 통해이 그룹에 사용자를이 그룹에 추가 할 수 있습니다.
우리는 아직 개발 초기에 아직 기여를 수락하기위한 표준화 된 프레임 워크가 없습니다. 이것은 제안 및/또는 코드 변경에 매우 개방적입니다! 이 저장소에 기여하는 데 관심이 있다면 먼저 문제 이사회를 확인하여 작업이 다른 사람의 작업을 복제하지 않도록 요청합니다. 그런 다음 작업에 관심이있는 것을 알 수 있도록 이사회에 문제를 제기하십시오. 프로젝트에 대해 궁금한 점이 있으면 여러분의 의견을 듣고 싶습니다!