<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Michael Muriithi</title>
    <description>The latest articles on DEV Community by Michael Muriithi (@phantomojo).</description>
    <link>https://dev.to/phantomojo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3408163%2F9dcf0b55-f583-4d04-98e7-2da89fbe9a07.jpeg</url>
      <title>DEV Community: Michael Muriithi</title>
      <link>https://dev.to/phantomojo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/phantomojo"/>
    <language>en</language>
    <item>
      <title>Building a Decentralized Mesh Network in Rust — Lessons from the Global South</title>
      <dc:creator>Michael Muriithi</dc:creator>
      <pubDate>Sun, 05 Apr 2026 20:09:30 +0000</pubDate>
      <link>https://dev.to/phantomojo/building-a-decentralized-mesh-network-in-rust-lessons-from-the-global-south-k44</link>
      <guid>https://dev.to/phantomojo/building-a-decentralized-mesh-network-in-rust-lessons-from-the-global-south-k44</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;2.6 billion people lack reliable internet access. When disasters strike,&lt;br&gt;
infrastructure fails, or communities are remote — traditional communication&lt;br&gt;
breaks down precisely when coordination is most critical.&lt;/p&gt;

&lt;p&gt;I'm a cybersecurity student in Nairobi, Kenya. I've seen what happens when&lt;br&gt;
communities lose connectivity: families can't check on each other after floods,&lt;br&gt;
rescue teams can't coordinate, and activists can't organize safely.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;GhostWire&lt;/strong&gt; — a decentralized, censorship-resistant mesh&lt;br&gt;
communication platform that works without any central servers.&lt;/p&gt;


&lt;h2&gt;
  
  
  What Is GhostWire?
&lt;/h2&gt;

&lt;p&gt;GhostWire is a peer-to-peer encrypted communication platform written in Rust.&lt;br&gt;
Instead of connecting to a server, devices connect directly to each other.&lt;br&gt;
Messages hop from node to node through whatever path is available.&lt;/p&gt;

&lt;p&gt;If a node goes offline, the mesh routes around it. If the internet goes down,&lt;br&gt;
GhostWire switches to WiFi Direct, Bluetooth, or even LoRa radio.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live site:&lt;/strong&gt; &lt;a href="https://phantomojo.github.io/GhostWire-secure-mesh-communication/" rel="noopener noreferrer"&gt;https://phantomojo.github.io/GhostWire-secure-mesh-communication/&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/Phantomojo/GhostWire-secure-mesh-communication" rel="noopener noreferrer"&gt;https://github.com/Phantomojo/GhostWire-secure-mesh-communication&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  The Architecture
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Networking: libp2p
&lt;/h3&gt;

&lt;p&gt;We use &lt;a href="https://libp2p.io/" rel="noopener noreferrer"&gt;libp2p&lt;/a&gt; — the same P2P networking stack used by&lt;br&gt;
IPFS and Ethereum. It handles peer discovery, connection establishment, and&lt;br&gt;
multiplexing. On top of that, we run a S/Kademlia-hardened DHT for routing&lt;br&gt;
and Gossipsub for message propagation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Simplified peer discovery&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;swarm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;SwarmBuilder&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;with_new_identity&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="nf"&gt;.with_tokio&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="nf"&gt;.with_tcp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="nn"&gt;tcp&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nn"&gt;Config&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;default&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
        &lt;span class="nn"&gt;noise&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nn"&gt;Config&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;new&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nn"&gt;yamux&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nn"&gt;Config&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;default&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;
    &lt;span class="nf"&gt;.with_behaviour&lt;/span&gt;&lt;span class="p"&gt;(|&lt;/span&gt;&lt;span class="n"&gt;_&lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="nn"&gt;Behaviour&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;
    &lt;span class="nf"&gt;.build&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Encryption: Defense in Depth
&lt;/h3&gt;

&lt;p&gt;Every message is encrypted end-to-end before it leaves your device:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Algorithm&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Symmetric&lt;/td&gt;
&lt;td&gt;AES-256-GCM&lt;/td&gt;
&lt;td&gt;Message encryption + integrity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Key Exchange&lt;/td&gt;
&lt;td&gt;X25519&lt;/td&gt;
&lt;td&gt;Perfect forward secrecy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Signatures&lt;/td&gt;
&lt;td&gt;Ed25519&lt;/td&gt;
&lt;td&gt;Identity verification&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Post-Quantum&lt;/td&gt;
&lt;td&gt;ML-KEM-768&lt;/td&gt;
&lt;td&gt;Future-proof (planned)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;No server, no relay, no intermediate node ever sees plaintext.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI-Powered Routing
&lt;/h3&gt;

&lt;p&gt;This is where GhostWire gets interesting. Instead of using fixed routing rules,&lt;br&gt;
we trained AI models on &lt;strong&gt;real mesh network data&lt;/strong&gt; from Barcelona's GuifiSants&lt;br&gt;
— one of the world's largest community mesh networks.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;L1 — LightGBM anomaly detector:&lt;/strong&gt; AUC 1.0, 76.7μs inference, exported as
ONNX and wired into Rust via ONNX Runtime&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;L3 — Graph Neural Network:&lt;/strong&gt; Trained on 7,931 samples across 63 nodes over
31 days. Learns which paths work best in real conditions.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Training pipeline (simplified)
&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;lgb&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;LGBMRegressor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;n_estimators&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;learning_rate&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.05&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;max_depth&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;num_leaves&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;31&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;X_train&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y_train&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;onnx_model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;convert_lightgbm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;initial_types&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;initial_type&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;onnx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;onnx_model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ghostwire_routing.onnx&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The model runs in &lt;strong&gt;76.7 microseconds&lt;/strong&gt; — fast enough for real-time routing&lt;br&gt;
decisions on a Raspberry Pi.&lt;/p&gt;

&lt;h3&gt;
  
  
  7 Transport Layers
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Transport&lt;/th&gt;
&lt;th&gt;Range&lt;/th&gt;
&lt;th&gt;Use Case&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;WiFi Direct&lt;/td&gt;
&lt;td&gt;~100m&lt;/td&gt;
&lt;td&gt;Urban mesh, device-to-device&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bluetooth LE&lt;/td&gt;
&lt;td&gt;~50m&lt;/td&gt;
&lt;td&gt;Indoor, low-power&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LoRa&lt;/td&gt;
&lt;td&gt;~15km&lt;/td&gt;
&lt;td&gt;Rural, long-range&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WebRTC&lt;/td&gt;
&lt;td&gt;Internet&lt;/td&gt;
&lt;td&gt;Bridge across networks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TCP/IP&lt;/td&gt;
&lt;td&gt;Internet&lt;/td&gt;
&lt;td&gt;Standard connectivity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reticulum&lt;/td&gt;
&lt;td&gt;Multi-hop&lt;/td&gt;
&lt;td&gt;Amateur radio mesh&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Briar&lt;/td&gt;
&lt;td&gt;Bluetooth/WiFi&lt;/td&gt;
&lt;td&gt;Activist communication&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;GhostWire selects the best available path automatically. No internet? It falls&lt;br&gt;
back to RF mesh. No WiFi? Bluetooth. The mesh adapts.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Rust?
&lt;/h2&gt;

&lt;p&gt;Three reasons:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Memory safety without GC&lt;/strong&gt; — GhostWire runs on resource-constrained devices&lt;br&gt;
(Raspberry Pi, old laptops). We can't afford a garbage collector pause during&lt;br&gt;
emergency communication.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Fearless concurrency&lt;/strong&gt; — The networking stack handles hundreds of&lt;br&gt;
simultaneous peer connections. Rust's ownership model means we don't worry&lt;br&gt;
about data races.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Performance&lt;/strong&gt; — The LightGBM inference runs in 76.7μs. The crypto is&lt;br&gt;
hardware-accelerated. Rust lets us squeeze every microsecond out of the&lt;br&gt;
hardware.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  The Human Side
&lt;/h2&gt;

&lt;p&gt;GhostWire isn't just a technical project. It's built on a philosophy:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In Hindu and Buddhist cosmology, Indra's Net is an infinite web. At each&lt;br&gt;
intersection hangs a jewel. Each reflected in all others. No jewel is more&lt;br&gt;
important. The net has no center. The net has no edge.&lt;/p&gt;

&lt;p&gt;The original internet architects independently rediscovered what African&lt;br&gt;
philosophy had encoded for millennia: systems built on mutual relationship&lt;br&gt;
rather than central authority are more resilient, more equitable, and more&lt;br&gt;
aligned with existence itself.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We're building this as part of the &lt;strong&gt;GCD4F 2026&lt;/strong&gt; competition (Global Climate&lt;br&gt;
Data for Future) under the "AI for Society" track, representing the Open&lt;br&gt;
University of Kenya.&lt;/p&gt;




&lt;h2&gt;
  
  
  We Need Contributors
&lt;/h2&gt;

&lt;p&gt;GhostWire is AGPL-3.0 licensed and actively seeking contributors:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rust developers&lt;/strong&gt; — libp2p networking, transport layers, crypto&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI/ML engineers&lt;/strong&gt; — GNN model training, routing optimization&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security researchers&lt;/strong&gt; — independent audit, threat modeling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend developers&lt;/strong&gt; — React/TypeScript dashboard&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Documentation writers&lt;/strong&gt; — guides, tutorials, translations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Good first issues&lt;/strong&gt; are labeled on GitHub. Our CONTRIBUTING.md has detailed&lt;br&gt;
setup instructions.&lt;/p&gt;




&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Website:&lt;/strong&gt; &lt;a href="https://phantomojo.github.io/GhostWire-secure-mesh-communication/" rel="noopener noreferrer"&gt;https://phantomojo.github.io/GhostWire-secure-mesh-communication/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/Phantomojo/GhostWire-secure-mesh-communication" rel="noopener noreferrer"&gt;https://github.com/Phantomojo/GhostWire-secure-mesh-communication&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docs:&lt;/strong&gt; &lt;a href="https://github.com/Phantomojo/GhostWire-secure-mesh-communication/tree/main/docs" rel="noopener noreferrer"&gt;https://github.com/Phantomojo/GhostWire-secure-mesh-communication/tree/main/docs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security:&lt;/strong&gt; &lt;a href="https://github.com/Phantomojo/GhostWire-secure-mesh-communication/blob/main/docs/SECURITY.md" rel="noopener noreferrer"&gt;https://github.com/Phantomojo/GhostWire-secure-mesh-communication/blob/main/docs/SECURITY.md&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Built in Nairobi, for the world. 🇰🇪&lt;/em&gt;&lt;/p&gt;

</description>
      <category>rust</category>
      <category>privacy</category>
      <category>opensource</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Building a Decentralized Mesh Network in Rust — Lessons from the Global South</title>
      <dc:creator>Michael Muriithi</dc:creator>
      <pubDate>Sun, 05 Apr 2026 19:42:58 +0000</pubDate>
      <link>https://dev.to/phantomojo/building-a-decentralized-mesh-network-in-rust-lessons-from-the-global-south-3h2o</link>
      <guid>https://dev.to/phantomojo/building-a-decentralized-mesh-network-in-rust-lessons-from-the-global-south-3h2o</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;2.6 billion people lack reliable internet access. When disasters strike,&lt;br&gt;
infrastructure fails, or communities are remote — traditional communication&lt;br&gt;
breaks down precisely when coordination is most critical.&lt;/p&gt;

&lt;p&gt;I'm a cybersecurity student in Nairobi, Kenya. I've seen what happens when&lt;br&gt;
communities lose connectivity: families can't check on each other after floods,&lt;br&gt;
rescue teams can't coordinate, and activists can't organize safely.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;GhostWire&lt;/strong&gt; — a decentralized, censorship-resistant mesh&lt;br&gt;
communication platform that works without any central servers.&lt;/p&gt;


&lt;h2&gt;
  
  
  What Is GhostWire?
&lt;/h2&gt;

&lt;p&gt;GhostWire is a peer-to-peer encrypted communication platform written in Rust.&lt;br&gt;
Instead of connecting to a server, devices connect directly to each other.&lt;br&gt;
Messages hop from node to node through whatever path is available.&lt;/p&gt;

&lt;p&gt;If a node goes offline, the mesh routes around it. If the internet goes down,&lt;br&gt;
GhostWire switches to WiFi Direct, Bluetooth, or even LoRa radio.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live site:&lt;/strong&gt; &lt;a href="https://phantomojo.github.io/GhostWire-secure-mesh-communication/" rel="noopener noreferrer"&gt;https://phantomojo.github.io/GhostWire-secure-mesh-communication/&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/Phantomojo/GhostWire-secure-mesh-communication" rel="noopener noreferrer"&gt;https://github.com/Phantomojo/GhostWire-secure-mesh-communication&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  The Architecture
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Networking: libp2p
&lt;/h3&gt;

&lt;p&gt;We use &lt;a href="https://libp2p.io/" rel="noopener noreferrer"&gt;libp2p&lt;/a&gt; — the same P2P networking stack used by&lt;br&gt;
IPFS and Ethereum. It handles peer discovery, connection establishment, and&lt;br&gt;
multiplexing. On top of that, we run a S/Kademlia-hardened DHT for routing&lt;br&gt;
and Gossipsub for message propagation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Simplified peer discovery&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;swarm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;SwarmBuilder&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;with_new_identity&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="nf"&gt;.with_tokio&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="nf"&gt;.with_tcp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="nn"&gt;tcp&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nn"&gt;Config&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;default&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
        &lt;span class="nn"&gt;noise&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nn"&gt;Config&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;new&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nn"&gt;yamux&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nn"&gt;Config&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;default&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;
    &lt;span class="nf"&gt;.with_behaviour&lt;/span&gt;&lt;span class="p"&gt;(|&lt;/span&gt;&lt;span class="n"&gt;_&lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="nn"&gt;Behaviour&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;
    &lt;span class="nf"&gt;.build&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Encryption: Defense in Depth
&lt;/h3&gt;

&lt;p&gt;Every message is encrypted end-to-end before it leaves your device:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Algorithm&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Symmetric&lt;/td&gt;
&lt;td&gt;AES-256-GCM&lt;/td&gt;
&lt;td&gt;Message encryption + integrity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Key Exchange&lt;/td&gt;
&lt;td&gt;X25519&lt;/td&gt;
&lt;td&gt;Perfect forward secrecy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Signatures&lt;/td&gt;
&lt;td&gt;Ed25519&lt;/td&gt;
&lt;td&gt;Identity verification&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Post-Quantum&lt;/td&gt;
&lt;td&gt;ML-KEM-768&lt;/td&gt;
&lt;td&gt;Future-proof (planned)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;No server, no relay, no intermediate node ever sees plaintext.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI-Powered Routing
&lt;/h3&gt;

&lt;p&gt;This is where GhostWire gets interesting. Instead of using fixed routing rules,&lt;br&gt;
we trained AI models on &lt;strong&gt;real mesh network data&lt;/strong&gt; from Barcelona's GuifiSants&lt;br&gt;
— one of the world's largest community mesh networks.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;L1 — LightGBM anomaly detector:&lt;/strong&gt; AUC 1.0, 76.7μs inference, exported as
ONNX and wired into Rust via ONNX Runtime&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;L3 — Graph Neural Network:&lt;/strong&gt; Trained on 7,931 samples across 63 nodes over
31 days. Learns which paths work best in real conditions.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Training pipeline (simplified)
&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;lgb&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;LGBMRegressor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;n_estimators&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;learning_rate&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.05&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;max_depth&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;num_leaves&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;31&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;X_train&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y_train&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;onnx_model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;convert_lightgbm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;initial_types&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;initial_type&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;onnx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;onnx_model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ghostwire_routing.onnx&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The model runs in &lt;strong&gt;76.7 microseconds&lt;/strong&gt; — fast enough for real-time routing&lt;br&gt;
decisions on a Raspberry Pi.&lt;/p&gt;

&lt;h3&gt;
  
  
  7 Transport Layers
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Transport&lt;/th&gt;
&lt;th&gt;Range&lt;/th&gt;
&lt;th&gt;Use Case&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;WiFi Direct&lt;/td&gt;
&lt;td&gt;~100m&lt;/td&gt;
&lt;td&gt;Urban mesh, device-to-device&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bluetooth LE&lt;/td&gt;
&lt;td&gt;~50m&lt;/td&gt;
&lt;td&gt;Indoor, low-power&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LoRa&lt;/td&gt;
&lt;td&gt;~15km&lt;/td&gt;
&lt;td&gt;Rural, long-range&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WebRTC&lt;/td&gt;
&lt;td&gt;Internet&lt;/td&gt;
&lt;td&gt;Bridge across networks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TCP/IP&lt;/td&gt;
&lt;td&gt;Internet&lt;/td&gt;
&lt;td&gt;Standard connectivity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reticulum&lt;/td&gt;
&lt;td&gt;Multi-hop&lt;/td&gt;
&lt;td&gt;Amateur radio mesh&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Briar&lt;/td&gt;
&lt;td&gt;Bluetooth/WiFi&lt;/td&gt;
&lt;td&gt;Activist communication&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;GhostWire selects the best available path automatically. No internet? It falls&lt;br&gt;
back to RF mesh. No WiFi? Bluetooth. The mesh adapts.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Rust?
&lt;/h2&gt;

&lt;p&gt;Three reasons:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Memory safety without GC&lt;/strong&gt; — GhostWire runs on resource-constrained devices&lt;br&gt;
(Raspberry Pi, old laptops). We can't afford a garbage collector pause during&lt;br&gt;
emergency communication.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Fearless concurrency&lt;/strong&gt; — The networking stack handles hundreds of&lt;br&gt;
simultaneous peer connections. Rust's ownership model means we don't worry&lt;br&gt;
about data races.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Performance&lt;/strong&gt; — The LightGBM inference runs in 76.7μs. The crypto is&lt;br&gt;
hardware-accelerated. Rust lets us squeeze every microsecond out of the&lt;br&gt;
hardware.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  The Human Side
&lt;/h2&gt;

&lt;p&gt;GhostWire isn't just a technical project. It's built on a philosophy:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In Hindu and Buddhist cosmology, Indra's Net is an infinite web. At each&lt;br&gt;
intersection hangs a jewel. Each reflected in all others. No jewel is more&lt;br&gt;
important. The net has no center. The net has no edge.&lt;/p&gt;

&lt;p&gt;The original internet architects independently rediscovered what African&lt;br&gt;
philosophy had encoded for millennia: systems built on mutual relationship&lt;br&gt;
rather than central authority are more resilient, more equitable, and more&lt;br&gt;
aligned with existence itself.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We're building this as part of the &lt;strong&gt;GCD4F 2026&lt;/strong&gt; competition (Global Climate&lt;br&gt;
Data for Future) under the "AI for Society" track, representing the Open&lt;br&gt;
University of Kenya.&lt;/p&gt;




&lt;h2&gt;
  
  
  We Need Contributors
&lt;/h2&gt;

&lt;p&gt;GhostWire is AGPL-3.0 licensed and actively seeking contributors:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rust developers&lt;/strong&gt; — libp2p networking, transport layers, crypto&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI/ML engineers&lt;/strong&gt; — GNN model training, routing optimization&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security researchers&lt;/strong&gt; — independent audit, threat modeling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend developers&lt;/strong&gt; — React/TypeScript dashboard&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Documentation writers&lt;/strong&gt; — guides, tutorials, translations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Good first issues&lt;/strong&gt; are labeled on GitHub. Our CONTRIBUTING.md has detailed&lt;br&gt;
setup instructions.&lt;/p&gt;




&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Website:&lt;/strong&gt; &lt;a href="https://phantomojo.github.io/GhostWire-secure-mesh-communication/" rel="noopener noreferrer"&gt;https://phantomojo.github.io/GhostWire-secure-mesh-communication/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/Phantomojo/GhostWire-secure-mesh-communication" rel="noopener noreferrer"&gt;https://github.com/Phantomojo/GhostWire-secure-mesh-communication&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docs:&lt;/strong&gt; &lt;a href="https://github.com/Phantomojo/GhostWire-secure-mesh-communication/tree/main/docs" rel="noopener noreferrer"&gt;https://github.com/Phantomojo/GhostWire-secure-mesh-communication/tree/main/docs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security:&lt;/strong&gt; &lt;a href="https://github.com/Phantomojo/GhostWire-secure-mesh-communication/blob/main/docs/SECURITY.md" rel="noopener noreferrer"&gt;https://github.com/Phantomojo/GhostWire-secure-mesh-communication/blob/main/docs/SECURITY.md&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Built in Nairobi, for the world. 🇰🇪&lt;/em&gt;&lt;/p&gt;

</description>
      <category>rust</category>
      <category>opensource</category>
      <category>privacy</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
