Skip to content

teymurbikbaeff-ctrl/Ferrite

Repository files navigation

Ferrite (Under Development / Dev Mode 🛠️)

English Version | Русская Версия

Ferrite is a decentralized, peer-to-peer (P2P) local chat application built using the Tauri 2 + React + TypeScript + Rust stack. It allows users to communicate securely over local networks without any central servers.


How It Works (P2P Architecture)

  1. Automatic Peer Discovery (mDNS): Upon startup, the application broadcasts its presence and searches for other active Ferrite clients on the same local network (Wi-Fi/LAN) using the mDNS protocol (via the mdns-sd Rust crate).
  2. Direct TCP Communication: Once a peer is discovered, all chat messages, typing statuses, and file transfers are sent directly between devices using raw TCP connections.
  3. Voice Calling (WebRTC): High-quality, real-time voice calls are established directly between peers using WebRTC. Call signaling (SDP offer/answer and ICE candidate exchange) is routed through the existing TCP connection.
  4. Local Database: All message history, peer information, and profile settings are stored locally on each device using SQLite (rusqlite).

Key Features

  • Decentralized & Serverless: No cloud servers or databases are used. Your data remains fully on your device.
  • Custom Profiles: Set your custom display name and circular profile avatar.
  • Local Discovery: Automatically detects other peers on the same local network.
  • Real-time Messaging: Instant text messaging in group or private chats.
  • Voice Messages: Record and send voice notes.
  • P2P Voice Calls: Direct voice calls with dynamic mute toggle, call timer, and responsive overlays.
  • File Sharing: Send and receive files directly to and from peers.

App Screenshots 📸

View Screenshots (click to expand)

Chat Interface

Calling Interface

Calling Interface


Tasks / Future Work 📝

  • Voice Message UI Loader: Add a progress/loading state UI for voice message playback and uploads.
  • Update Calling UI: Refine the design of the calling overlays and modals, implementing glassmorphism, updated controls, and smoother animations.
  • Interface Translation: Add support for English language and full UI localization.

Development Setup

Prerequisites

  • Node.js (v18+)
  • Rust and Cargo
  • Xcode (for iOS build/Simulator)
  • Android Studio & Android SDK (for Android build)

Install Dependencies

npm install

Run Desktop Version (macOS/Windows/Linux)

npm run tauri dev

Run on iOS Simulator

npx tauri ios dev "iPhone 17 Pro"

Run on Android Emulator / Device

npx tauri android dev

About

Ferrite is a decentralized, peer-to-peer (P2P) local chat application built using the Tauri 2 + React + TypeScript + Rust stack. It allows users to communicate securely over local networks without any central servers.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages