Dossier · № 05 / 16
TerraCrypt Messenger
Messenger à courbe sur mesure — Messenger chiffré de bout en bout sur iOS, Android, desktop Tauri et un backend Go entièrement auto-hébergé, avec un panneau d'administration et une stack d'observabilité complète. Discussions de groupe, voix, vidéo et transfert de fichiers — le tout sous une cryptographie qui s'exécute sur l'appareil. Le premier grand système où le pattern « un cœur, plusieurs clients » a fait ses preuves, et l'ancêtre de la refonte post-quantique de vChat.
Ce qui a été fait
- Client iOS natif dans un monorepo SPM modulaire (Core*, Feature*) avec ses propres paquets crypto
- Client Android en Kotlin, architecture data/domain/ui, Gradle multi-module
- Desktop Tauri pour Windows, macOS et Linux (~20 MB d'installateur, sans Chromium)
- Backend Go en monorepo : API, signaling, push, paiements, migrations PostgreSQL + Redis
- CoTURN pour la traversée NAT et MinIO comme stockage média chiffré compatible S3
- Panneau d'administration (RBAC + audit trail) avec des métriques en temps réel
- Observabilité : Grafana, Loki, Fluent-bit, Kibana, traces APM et endpoints Prometheus
Couches du système
Cryptographie sur l'appareil
SwiftKotlinCJNI- Courbe elliptique sur mesure et primitives maison, pas un simple appel à la bibliothèque d'un tiers
- CoreCrypto / CoreCryptoDM / CoreCryptoGroup : primitives, DM et chiffrement de groupe
- Couche C native via JNI sur Android — comportement identique à celui d'iOS
- Base locale chiffrée (SQLCipher) et coffre biométrique
Clients
SwiftUICombineComposeTauri 2- iOS : SwiftUI + Combine, appels de groupe WebRTC avec signaling maison
- Android : Jetpack Compose, Hilt, Room, WorkManager pour un arrière-plan fiable
- Desktop : cœur Rust + TypeScript/Vite, auto-update et signature de code
- Une extension de notification déchiffre les messages push avant que le système ne les affiche
Backend et observabilité
GoPostgreSQLRedisDockerGrafana- Services Go dans une stack Docker Compose, scalables horizontalement
- PostgreSQL comme store principal avec des migrations maison, Redis pour les sessions et le rate-limit
- Reverse proxies Apache et nginx avec un vhost par service
- Mises à jour à chaud sans interruption sur le serveur de production
Technologies
Langages de programmationSwift, Kotlin, Rust, TypeScript, Go, PHP, C
Frameworks et outilsSwiftUI, Combine, Jetpack Compose, Hilt, Room, Tauri 2, React, WebRTC
InfrastructurePostgreSQL, Redis, CoTURN, MinIO, Docker Compose, Grafana, Loki, Kibana
Faits
PlateformesiOS · Android · Desktop · Server
Statuten ligne
Années2022 → aujourd'hui
CatégorieProjet phare · iOS · Android · Desktop
TerraCrypt — les clients sur trois plateformes partagent la même couche crypto en C.
Tous les projets