A modern, cross-platform desktop instant messaging application built with Tauri, Vue 3, and Rust.
This is the desktop client for Ripple IM Server.
Ripple IM App is a feature-rich desktop messaging application designed for secure, real-time communication. It supports one-on-one conversations, group chats, file sharing, and comprehensive contact management - all with a focus on privacy and a seamless user experience.
A polished splash screen greets users on application launch.
Secure OAuth2-based authentication with session persistence and encrypted token storage using the system keyring.
Note: Clicking "Sign Up" or "Sign In" will open your default browser for secure authentication via OAuth2.
![]() |
![]() |
Instant message delivery via WebSocket with support for text messages, file attachments, and images.
Create and manage group conversations with member invitations, group settings, and real-time updates.
Manage your friends list, handle friend requests, and block unwanted contacts with ease.
Customize your profile with avatar upload (with interactive cropping) and nickname settings.
- File Sharing - Send and receive files with download support
- Image Preview - View images in an interactive modal viewer
- Unread Counts - Track unread messages per conversation
- Message History - Persistent message storage with incremental sync
- Cross-platform - Native experience on macOS, Windows, and Linux
| Technology | Purpose |
|---|---|
| Vue 3 | UI Framework with Composition API |
| TypeScript | Type-safe development |
| Tailwind CSS | Utility-first styling |
| Vite | Build tool and dev server |
| Vue Router | Client-side routing |
Note: The frontend UI was developed using the vibe coding approach - an AI-assisted development methodology that emphasizes rapid prototyping and intuitive design iteration.
| Technology | Purpose |
|---|---|
| Rust | Core application logic |
| Tauri v2 | Desktop framework and native APIs |
| Axum | OAuth callback server |
| Tokio | Async runtime |
| SQLx | Database queries with compile-time checking |
| Technology | Purpose |
|---|---|
| SQLite + SQLCipher | Encrypted local database |
| WebSocket | Real-time message delivery |
| Protocol Buffers | Binary message serialization |
| OS Keyring | Secure credential storage |
# Install dependencies
npm install# Start the development server with hot reload
npm run tauri devThis command launches both the Vite dev server for the frontend and the Tauri development build.
Note: You need to run the Ripple IM Server before starting the client.
The application uses environment-specific configuration files located in src-tauri/resources/:
dev_app_config.json- Development environment
| Variable | Description |
|---|---|
RIPPLE_INSTANCE |
Run multiple instances with separate data directories |
RIPPLE_HTTP_PROXY |
HTTP proxy URL for network requests |
MIT License






