An experimental P2P location-sharing application built entirely in Rust.
This project explores decentralized location sharing using the WebRTC protocol. It implements a custom handshake layer where the room initiator authorizes participants via key rotation.
- Tech Stack: Built in Rust with Dioxus (UI), Matchbox (WebRTC signaling), and Nix (development environment).
- Status: Core and Infrastructure components are functional. The UI is currently a work-in-progress and the app is not yet intended for production use.
The project is organized as a Cargo workspace and follows the hexagon architecture:
sl_core: Protocol models, state machines, and ports.sl_infra: Adapters for WebRTC (Matchbox) and Web Geolocation.sl_app: The Dioxus-based web frontend.
Development commands are managed via just:
- Run the app:
just serve(runs the Dioxus web app at0.0.0.0:8080). - Test Core:
just test-core. - Test Infra:
just test-infra. - Check Coverage:
just coverage.
Requires a running Matchbox signaling server for P2P connectivity.