Penting
? Klien Manajemen Jaringan Meshtastic membutuhkan pemilik / pemelihara platform baru?
Rincian lebih lanjut tersedia dalam edisi #473.
Aplikasi ini adalah klien desktop untuk proyek meshtastic, yang dirancang untuk memungkinkan pengguna mengelola jaringan mesh yang besar dan terdesentralisasi. Saat ini ekosistem klien Meshtastic memiliki dukungan kuat untuk mengelola node tunggal, tetapi dukungan minimal untuk manajemen dan analisis tingkat jaringan. Tujuan dari proyek ini adalah untuk memberi pengguna kepercayaan pada jaringan meshtastic mereka sebagai infrastruktur komunikasi yang andal melalui analisis algoritmik baru dan wawasan tingkat koneksi.

Aplikasi ini dibangun menggunakan Tauri Framework, penerus modern dan aman untuk kerangka elektron. Ini memungkinkan kami untuk secara asli mendukung Linux, MacOS, dan Windows dalam basis kode yang sama tanpa kinerja atau overhead memori browser kromium. Infrastruktur aplikasi inti kami ditulis dalam karat karena kinerja dan keamanannya, dan fungsi UI dan klien kami ditulis dalam React TypeScript menggunakan vite. Proyek ini sedang dalam tahap awal pengembangan, dan karena itu belum cocok untuk penggunaan produksi .
Pada saat penulisan, proyek ini saat ini dikelola oleh pengembang tunggal. Dengan demikian, proyek ini mencari pengembang yang bersedia berkontribusi atau memimpin inisiatif besar berikut:
Proyek ini masih dalam tahap awal pengembangan, tetapi inilah peta jalan fungsi yang sedang kami kerjakan. Kami menempatkan prioritas tinggi untuk mendapatkan infrastruktur inti kami dengan benar, karena ini adalah inti dari lapisan UI yang kuat dan efektif.
Proyek ini dibangun di ekosistem perangkat keras meshtastic, dan dengan demikian klien ini mengharuskan Anda memiliki akses ke radio meshtastic. Ini mungkin berubah di masa depan, tetapi untuk saat ini menjadi radio fisik diperlukan untuk menggunakan klien ini.
Saya telah menulis beberapa rekomendasi perangkat keras pribadi di sini.
Proyek ini dibangun dengan naskah Rust dan React, dan dikelola menggunakan PNPM Package Manager. Dengan demikian, proyek ini mengharuskan program berikut untuk diinstal pada mesin pengembangan Anda:
Untuk menjalankan proyek ini secara lokal, ikuti langkah -langkah di bawah ini:
git clone https://github.com/meshtastic/network-management-client.gitgit submodule update --initpnpm ipnpm run rust:dev . Aplikasi harus dikompilasi dengan sukses, dan Anda akan melihat aplikasi terbuka dengan sukses. Jika proses ini gagal untuk Anda, beri tahu kami!Meskipun proyek ini dapat dikembangkan dalam editor teks apa pun, kami merekomendasikan editor kode Visual Studio. Jika menggunakan vScode, kami sangat menyarankan Anda menginstal ekstensi kode Visual Studio berikut. Ekstensi ini menegakkan gaya kode dan memungkinkan dukungan bahasa dan kerangka kerja untuk tumpukan teknologi kami.
Beberapa ekstensi opsional yang tidak diperlukan tetapi kami sangat membantu:
Untuk membakukan aliran pengembangan kami, kami menggunakan perintah PNPM, yang didefinisikan dalam package.json . Perintah -perintah ini dapat dijalankan dengan pnpm run NAME ...ARGS . Perintah kami dipecah menjadi dua kategori utama, rust:* perintah dan ui:* perintah. Perintah rust:* menjalankan seluruh aplikasi desktop, di mana perintah ui:* hanya menjalankan lapisan UI.
Catatan: Kami sangat merekomendasikan untuk menggunakan perintah
ui:devdanui:buildsecara manual. Perintah -perintah ini dipanggil secara internal olehrust:devandrust:buildperintah, masing -masing. Anda tidak akan dapat terhubung ke devce serial saat menjalankan perintahui:dev, karena logika ini tidak ditangani di lapisan UI.
Kami saat ini sedang bekerja untuk menambahkan dukungan untuk kerangka kerja buku cerita, yang akan memungkinkan kontributor untuk mengembangkan komponen UI tanpa menjalankan seluruh aplikasi desktop.
pnpm run rust:dev - Memulai aplikasi desktop dalam mode pengembangan, memungkinkan untuk memuat ulang panas UI dan kode karat
pnpm run rust:build - Membangun Aplikasi Desktop dalam Mode Produksi untuk Arsitektur Sistem Anda. Saat ini kami hanya menggunakan perintah ini untuk menguji parser argumen CLI aplikasi kami.
pnpm run rust:test - menjalankan tes backend pada direktori basis kode karat ( /src-tauri ). Perintah ini juga menghasilkan binding klien TypeScript di direktori /src-tauri/bindings . Tambahkan -- --show-output untuk menampilkan Rust println! Panggilan makro dalam suite tes.
pnpm run ui:dev - Memulai server pengembangan UI, memungkinkan pengembangan UI di lingkungan browser. Perhatikan bahwa kode apa pun yang berinteraksi dengan backend karat tidak akan berfungsi dalam lingkungan browser ini, yang berarti Anda tidak akan dapat terhubung ke perangkat serial dalam konteks ini
pnpm run ui:build : - Menjalankan Build Produksi pada Kode UI ke dalam direktori dist
pnpm run ui:lint - Menggunakan Eslint untuk memeriksa kesalahan gaya kode. Perhatikan bahwa pipa CI kami mengharuskan perintah ini berhasil sebelum perubahan dapat digabungkan
pnpm run ui:format - memformat basis kode UI menggunakan lebih cantik dan eslint. Kami sangat menyarankan Anda menjalankan ini sebelum membuat PR!
pnpm run ui:test - Runs UI Test Suite Menggunakan Jest. Saat ini proyek tidak memiliki suite pengujian UI, tetapi kami sangat terbuka untuk kontribusi!
(Teram)pnpm run ui:preview - menjalankan UI yang dibangun dari direktori dist . Perintah ini harus dijalankan setelah ui:build
Catatan: Di Linux, pengguna Anda mungkin tidak memiliki izin untuk mengakses port serial yang diberikan. Jika ini terjadi, Anda mungkin perlu menambahkan pengguna Anda ke grup yang mengontrol port serial yang ingin Anda akses. Anda dapat menemukan grup yang mengontrol port serial melalui perintah
ls -ld PATH_TO_PORT_HERE. Anda dapat menambahkan pengguna Anda ke grup ini melalui perintahusermod -a -G GROUP_NAME_HERE $USER.
Karena kami masih sangat awal dalam pengembangan, kami belum memiliki kerangka kerja standar untuk menerima kontribusi. Ini dikatakan, kami sangat terbuka untuk saran saran dan/atau kode! Jika Anda tertarik untuk berkontribusi pada repositori ini, kami akan meminta Anda memeriksa papan masalah kami terlebih dahulu untuk memastikan pekerjaan Anda tidak menduplikasi pekerjaan orang lain. Lalu, silakan buat masalah di papan kami sehingga kami tahu apa yang Anda minati. Jika Anda memiliki pertanyaan tentang proyek ini, kami akan senang mendengar dari Anda!