Active development of Xmes has ended.
Building and maintaining a messaging app at scale requires a dedicated team and sustainable funding. That includes the resources to address legal and regulatory responsibilities properly. As an independent developer, I cannot provide that level of support on my own.
This repository is archived and is no longer maintained. The source code remains available under the MIT License.
Decentralised, end-to-end encrypted messaging — built with Rust and XMTP.
xmes was an experimental open-source messenger built on the XMTP protocol. Messaging identities use Ethereum keypairs managed on the user's device.
The project compiles a single Rust codebase to WebAssembly, targeting web (PWA), desktop, and mobile via Dioxus.
xmes/
├── xmes-xmtp-wasm/ # XMTP integration layer — WASM only, no UI
└── xmes-mobile-pwa/ # Dioxus Mobile PWA frontend — WebAssembly
The XMTP integration layer, compiled exclusively to WebAssembly. Wraps the libxmtp WASM bindings and exposes a clean Rust API. Responsibilities:
- Ethereum keypair generation and identity management
- Private key serialisation (hex) for local persistence
- Conversation listing and group creation via XMTP
- Worker infrastructure — spawns a Dedicated Worker so the XMTP SQLite database can use the OPFS Sync Access Handle VFS (browser main thread restriction workaround)
- Environment switching (Local / Dev / Production)
The Progressive Web App frontend fpr mobile devices built with Dioxus 0.7, compiled to WebAssembly. A pure UI crate: no JS interop, no wasm-bindgen direct dependency — only Dioxus and xmes-xmtp-wasm.
The landing page of Xmes.
- Rust
- Dioxus CLI:
cargo install dioxus-cli wasm32-unknown-unknowntarget:rustup target add wasm32-unknown-unknown
# Start the dev server (PWA) with hot reload
dx serve --addr 0.0.0.0 --port 9000
# Build for web
dx build
# Lint (automatically targets WASM via .cargo/config.toml)
cargo clippy
# Format
cargo fmtMIT — see LICENSE for details.
Xmes is discontinued experimental software, provided "as is" and "as available", without voluntary warranties or guarantees. Use it at your own risk. Warranty and liability exclusions apply only where permitted by applicable law; mandatory legal rights and obligations remain unaffected.
See the full Legal Disclaimer for details, including third-party dependencies, local data and optional notifications, user responsibilities, and the limits of liability exclusions. The software is licensed under the MIT License.