Ming is a comprehensive, asynchronous Discord bot built in Rust that interfaces with the Rust+ companion app protocol. It allows server administrators and clans to manage their Rust servers directly from Discord.
- Multi-Server Support: Connect to and manage multiple Rust servers simultaneously from a single Discord server.
- Auto-Provisioning Dashboards: Automatically creates a persistent, rich Discord embed dashboard whenever you pair a new server in the Rust+ app.
- Interactive UI: Connect and disconnect from servers using Discord UI buttons directly on the dashboard.
- Bidirectional Team Chat: Intercepts and parses in-game team chat messages (integration extensible).
- Smart Alarms & Notifications: Designed to route in-game events like smart alarms directly to dedicated Discord channels.
The project is structured as a Cargo workspace with three main crates to enforce a clean separation of concerns:
crates/push-receiver: A native Rust port of the FCM (Firebase Cloud Messaging) protocol. It intercepts Rust+ server pairing notifications directly from Google's push servers.crates/rustplus: A native Rust WebSocket client for the Rust+ companion app protocol. It handles persistent server connections, real-time events, rate limiting, and camera frame rendering.crates/bot: The Discord bot application. Built usingpoiseandserenity, it manages user interactions and usesdieselwith SQLite for relational state management.
- Ensure you have Rust and Cargo installed.
- Copy
.env.exampleto.envand insert your Discord Bot Token:cp .env.example .env # Edit .env to add your DISCORD_TOKEN - Run the bot:
(Note: The bot will automatically run Diesel database migrations and create
cargo run -p bot
db.sqliteon its first boot). - Invite the bot to your Discord server ensuring it has the necessary permissions (e.g., Administrator for channel creation).
- Type
/setupin your server to configure the channel auto-creation preferences. - Type
/credentials addand fill out the secure modal with your GCM/FCM credentials. - Pair a server in the Rust+ app on your phone. The bot will instantly intercept the pairing and automatically generate your interactive server dashboard!