Expand description
§Meshbbs - Bulletin Board System for Meshtastic Networks
Meshbbs is a modern Bulletin Board System (BBS) designed specifically for Meshtastic mesh networks. It provides traditional BBS functionality over long-range, low-power radio networks using LoRa technology.
§Features
- Meshtastic Integration: Direct communication with Meshtastic devices via serial or Bluetooth
- Message Boards: Traditional BBS-style message topics and forums
- User Management: Role-based access control (User, Moderator, Sysop)
- Security: Argon2id password hashing with configurable parameters
- Async Design: Built with Tokio for high performance
§Quick Start
use meshbbs::config::Config;
use meshbbs::bbs::BbsServer;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
// Load configuration
let config = Config::load("config.toml").await?;
// Create and start BBS server
let mut server = BbsServer::new(config).await?;
server.run().await?;
Ok(())
}
§Module Organization
bbs
- Core BBS functionality including server, sessions, and commandsmeshtastic
- Meshtastic device communication and protocol handlingstorage
- Message and user data persistence layerconfig
- Configuration management and validationvalidation
- Input validation and sanitization utilitiesprotobuf
- Protocol buffer definitions for Meshtastic integration
§Architecture
Meshbbs uses a modular architecture with clear separation of concerns:
┌─────────────────┐
│ BBS Server │ ← Core application logic
└─────────────────┘
│
┌─────────────────┐
│ Meshtastic │ ← Device communication
│ Interface │
└─────────────────┘
│
┌─────────────────┐
│ Storage │ ← Data persistence
│ Layer │
└─────────────────┘
§Examples
See the examples/
directory for complete usage examples and the main binary
implementation in src/main.rs
for a full application example.
Modules§
- bbs
- BBS (Bulletin Board System) Core Module
- config
- Configuration Management Module
- logutil
- Logging utilities for sanitizing multi-line user/content strings so logs stay single-line. Escapes control characters that otherwise break log readability.
- meshtastic
- Meshtastic Device Communication Module
- metrics
- Minimal metrics scaffolding (Phase 3) This will later be extended with Prometheus exposition and histograms.
- protobuf
- Generated protobuf modules
- storage
- Storage Module - Data Persistence Layer
- validation
- Username validation module for security and compatibility