Skip to content
This repository was archived by the owner on Sep 28, 2026. It is now read-only.

Repository files navigation

Project discontinued

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.


xmes

xmes

Decentralised, end-to-end encrypted messaging — built with Rust and XMTP.

status: archived rust wasm


What is xmes?

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.


Repository structure

xmes/
├── xmes-xmtp-wasm/   # XMTP integration layer — WASM only, no UI
└── xmes-mobile-pwa/         # Dioxus Mobile PWA frontend — WebAssembly

xmes-xmtp-wasm

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)

xmes-mobile-pwa

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.

landing-page

The landing page of Xmes.


Getting started

Prerequisites

  • Rust
  • Dioxus CLI: cargo install dioxus-cli
  • wasm32-unknown-unknown target: rustup target add wasm32-unknown-unknown

Development

# 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 fmt

License

MIT — see LICENSE for details.


Legal Disclaimer

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.

About

Archived experimental messaging client. Active development has ended.

Topics

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages