Skip to content

Repository files navigation

signal

platform runtime ci license

signal is a network monitoring tool for macOS, designed to be minimal and beautiful.

installation

As of now, I haven't setup code signing for this (and probably won't do it for a while). If you're interested in using this app, you will have to clone and build it yourself. See building.

building

System requirements:

  • macOS only
  • Apple Silicon Mac recommended
  • Xcode Command Line Tools
  • Node.js and Yarn
  • Rust stable toolchain
  • Nightly Rust with rustfmt for formatting
### App icons are generated from the single source SVG at `src-tauri/icons/app-icon.svg`:
cargo tauri icon src-tauri/icons/app-icon.svg -o src-tauri/icons

### run in development mode
cargo tauri dev

### for formatting rust code
cargo +nightly fmt

### create a production build and install it
cargo tauri build

architecture

Signal is built as a single-writer event-driven runtime.

  • Rust owns networking, state, persistence, and app lifecycle.
  • React is a rendering layer that hydrates from get_initial_state() and then listens for live Tauri events.
  • Collectors such as throughput, interface, and connectivity samplers are read-only. They observe the selected interface, gather data from macOS, and emit AppEvents.
  • All collector output and configuration changes flow through a single tokio::sync::mpsc channel.
  • A single reducer task is the only writer to AppState. It processes AppEvents, updates in-memory state, persists time-series samples to SQLite, and emits UI updates.
  • SQLite stores durable history with background cleanup of older samples, while in-memory history is intentionally bounded for live rendering.

At a systems level, the app is structured to keep data flow one-way and ownership explicit: many producers, one event queue, one reducer, one source of truth.

license

MIT

Happy hacking!

About

Beautiful network monitoring for macOS.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Contributors

Languages