About SPEEM
SPEEM is a truly serverless, privacy-focused messaging app. SPEEM uses peer-to-peer networking and solid cryptography to establish secure communications. Messages and app metadata are securely stored on the device, no relay servers.
Features
Serverless: SPEEM don't rely on relay servers. Data is kept secure on each device and conversations are shared only with trusted peers.
Peer-to-peer: SPEEM uses solid and efficient peer-to-peer networking for user pairing and discovery, and also for data reconciliation between trusted peers.
Secure local storage: All messages and metadata are encrypted before being stored in the device's local storage. No remote storage.
Native apps: The mobile apps for iOS and Android are native for better user experience and the best performance.
Sub-projects
The core built with Rust: This is the core shared library built with Rust, for maximum performance and security.
The iOS app: The iOS native app.
The Android app: The Android, native app.
Development Roadmap
Proof of Concept (PoC)
The PoC aims to demonstrate the feasibility of a serverless, privacy-focused messaging app. It should include the core functionalities needed to establish secure communication between users without relying on central servers.
- User registration and key generation.
- User pairing and discovery.
- Peer-to-peer messaging.
- End-to-end encrypted messages.
- Store keys and messages securely on the device.
Version 1
- Enhanced messaging: message delivery confirmation, support multimedia messages.
- User status and presence nitification.
- User discovery enhancements.
- Ensure data synchronization across multiple devices of the same user.
- Enhanced privacy: provide options for users to manage their own privacy settings.
- (Maybe) Implement federated learning for predictive text and spam detection without compromising privacy.
How SPEEM uses Rust
The core of SPEEM is a shared library developed in Rust cross-compiled for mobile targets (iOS and Android). To achieve this, we use UniFFI as the toolkit for building cross-compiled shared Rust libraries.
This approach has many benefits:
- Build the majority of the application code once, in Rust
- Better testability
- Encapsulate the behavior of the app in the Core for reuse
- Use the native UI tool kits to create user experience that is the best fit for a given platform