Petualangan Rust & Cerita Dibalik `yo_netwatch`

May 21, 2025 (1mo ago)

Disclaimer: Masih simpel, masih banyak ruang eksplorasi. Tapi bangga juga bisa bikin sesuatu dari ide kecil β€” jadi crate beneran di crates.io πŸ¦€πŸ’–

πŸš€ Petualangan Rust: Dari egui sampai yo_netwatch! πŸ¦€πŸ“‘

Awalnya cuma coba-coba egui β€” GUI framework di Rust. Tapi seperti biasa, Rust nggak pernah setengah-setengah ngasih tantangan.

Berjumpalah aku dengan: πŸ” ownership, borrow checker, unwrap, lock, channel, Receiver, multi-threading, sampai ke dunia async dan tokio.

Satu hal yang bikin aku kepikiran:

"Kenapa di Rust belum ada yang simple buat deteksi status koneksi kayak connectivity_plus di Flutter?"

Akhirnya aku coba bikin sendiri dari nol, dan lahirlah…

πŸ› οΈ yo_netwatch β€” network status watcher ringan untuk Rust! πŸ“¦ Native. No async. No loop polling. Langsung trigger saat status berubah (online/offline).

✨ Fitur

  • Deteksi status koneksi online / offline
  • Gunakan channel untuk broadcast perubahan status
  • Tanpa dependensi berat
  • Mudah diintegrasikan ke egui, Tauri, CLI, atau backend-native

πŸš€ Contoh Penggunaan

use yo_netwatch::{start_network_watcher, Receiver as YoReceiver};
 
let rx = start_network_watcher();
if let Ok(online) = rx.recv() {
    println!("Status jaringan: {}", if online { "Online βœ…" } else { "Offline ❌" });
}
impl eframe::App for BarcodeApp {
    fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
        while let Ok(status) = self.yo_rx.try_recv() {
            self.yo_connected = status;
            println!("network changed : {}", status)
        }
    }
}

Kalau kamu lagi belajar Rust, tertarik bikin library sendiri, atau pengen diskusi tentang async & jaringan, feel free to connect ya! πŸ”—βœ¨

πŸ”– Tags #RustLang #RustCrate #AsyncRust #egui #Tauri #OpenSource #yo_netwatch #Connectivity #Networking #FromScratch #BelajarRust