Mezon Desktop
April 29, 2026 ยท View on GitHub
Mezon Desktop is the native Rust desktop client for Mezon, a live communication platform for communities, gaming, work, and collaboration.
This repository contains the Rust/GPUI application. It is organized as a Cargo workspace with a small app shell, GPUI views, API/client state, native OS integration, and vendored GPUI/Zed support crates.
Status
The app is under active migration to a native GPUI client.
- Auth screens are implemented with email OTP and email/password login.
- Sessions are stored in the OS keychain and refreshed in the background.
- Native integration includes single-instance handling, deep links, tray support, notifications, auto-start, and screen lock/unlock hooks.
- The main authenticated app shell is still in progress.
Requirements
- Rust via
rustup just- Platform build tools for Rust desktop applications
The Rust toolchain is pinned in rust-toolchain.toml. When using rustup, Cargo
will automatically install and use the configured toolchain and components.
Quick Start
# Install just if needed
cargo install just
# Clone the repository
git clone https://github.com/mezonai/mezon-desktop
cd mezon-desktop
# Install development tools used by the just recipes
just install
# Run the app in debug mode
just run
Run just to list the available recipes.
Common Commands
just run # Build and run the app
just watch # Re-run on changes with cargo-watch
just check # Run clippy checks for the workspace
just lint # Strict lint and format checks
just fix # Apply rustfmt and clippy fixes
just test # Run tests with cargo-nextest
just cov-summary # Show coverage summary
just cov # Generate and open HTML coverage
just safety # Run cargo-deny checks
just release # Build a release binary
Most recipes are thin wrappers around Cargo commands, so direct Cargo usage also works:
cargo run
cargo clippy --workspace -- -D warnings
cargo test --workspace
Workspace Layout
crates/
mezon-app/ Binary entry point, GPUI bootstrap, window setup, app runtime
mezon-ui/ GPUI views, theme, primitives, and composition components
mezon-client/ REST API client, session handling, keychain integration
mezon-store/ Persistent settings and application state models
mezon-native/ Tray, deep links, notifications, auto-start, single instance
mezon-updater/ Update-checking logic
mezon-proto/ Protobuf-facing types
vendor/ Vendored GPUI/Zed support crates
assets/
fonts/ Bundled fonts used by the UI
The default Cargo workspace member is crates/mezon-app, whose binary is named
mezon.
Runtime Notes
The default API client configuration currently points at the development Mezon backend:
- REST host:
dev-mezon.nccsoft.vn - REST port:
8088 - TLS: enabled
- WebSocket host:
sock.mezon.ai
Persistent settings are stored at:
~/.config/mezon/settings.json
Auth sessions are stored through the platform keychain using the service name
mezon-desktop.
Logs use tracing_subscriber and can be filtered with RUST_LOG:
RUST_LOG=mezon=debug,info just run
Development Workflow
Before opening a pull request or handing off changes, run:
just lint
just test
For dependency and license checks, run:
just safety
To inspect or update dependencies:
just outdated
just update