prt-core
Core library for prt — a real-time network port monitor.
This crate provides the platform-independent logic for scanning, tracking, filtering, sorting, and exporting network port information. It is designed to be consumed by any frontend (TUI, GUI, CLI).
Architecture
platform::scan_ports()
→ Session::refresh()
→ scanner::diff_entries() (New / Unchanged / Gone)
→ scanner::sort_entries()
→ scanner::filter_indices()
→ UI renders
Modules
- [
model] — Core data types:PortEntry,TrackedEntry,SortState, enums. - [
core] — Business logic: scanning, diffing, filtering, sorting, killing, session management. - [
i18n] — Internationalization: runtime-switchable language support (English, Russian, Chinese) backed byAtomicU8. - [
platform] — OS-specific port scanning: macOS (lsof), Linux (/proc).
Example
use prt_core::core::scanner;
use prt_core::model::ExportFormat;
let entries = scanner::scan().expect("scan failed");
let json = scanner::export(&entries, ExportFormat::Json).unwrap();
println!("{json}");