Discret
Une librairie Rust pour créer des applications pair à pair (P2P) en utilisant une syntaxe inspirée de GraphQL
Elle fournit les fonctionnalités suivantes:
- une base de données basée sur SQLite qui est gérée en utilisant une syntaxe GraphQL,
- un mécanisme d'authentification et d'autorisation permettant d'appliquer des droits d’accès aux données,
- une API permettant d'inviter des Pairs.
Discret synchronisera automatiquement vos données avec les autres pairs, en fonction des droits d'accès que vous aurez accordé.
Créez votre modèle de données
Gérez les droits d'accès
mutate
Insérez vos données
mutate
Interrogez les données
query
Et laissez Discret synchroniser vos données avec les pairs que vous avez invités.
Commencer avec Rust Commencer avec Flutter Apprendre Github
-
Commencer en suivant les Tutoriels.
-
Un binding Flutter est disponible pour créer des applications sans avoir à écrire une seule ligne de Rust. Commencer avec Flutter fournit toutes les étapes pour développer avec Flutter.
-
Approfondissez vos connaissances dans la section Apprendre.
-
Et toute contribution est bienvenue sur Github!
Ce site est aussi disponible en anglais.
Avantages
Simplicité
Discret cache la complexité des applications pair à pair, en la réduisant à un problème de gestion de droit d'accès aux données.
L'API se résume à:
- gérer ses données en utilisant une API GraphQL,
- associer des droits d'accès à ces données(toujours en GraphQL)
- créer et accepter des invitations d'autres Pairs
la librairie s'occupe de synchroniser les données avec les different Pairs, en fonction des droits d'accès que vous leur avez accordé.
Vie Privée Renforcée
Vos données ne sont pas stockées sur le "cloud", ni par une société tierce. C'est à vous de décider avec qui vous partagez vos données.
Il n'y a aucun service de découverte d'utilisateurs. Vous invitez manuellement des personnes, et elles seules peuvent savoir que vous utilisez cette application.
Sécurité Renforcée
Discret propose de fortes garanties de sécurité:
- les données sont cryptées sur le disque dur en utilisant la base de données SQLCipher.
- les communications sont cryptées en utilisant le protocole QUIC.
- les données sont signées par les clé de signature des pairs, rendant très difficile la synchronisation de données corrompues.
- une gestion fine des droits d'accès est proposée par le concept de Room.
Connexion Facilitées
En réseau local, aucun équipement n'est requis pour établir des connexions. Cela simplifie grandement le déploiement et l'utilisation de logiciels basés sur Discret
Limitations
Comme vos données sont stockées sur votre appareil, Discret n'est pas conçu pour gérer de larges applications à l'échelle d'internet.
Il ne devrait être utilisé que pour des applications générant un volume raisonnable de données, en se synchronisant avec quelques centaines de pairs au plus.
Pour les connexions à travers internet, un serveur est requis pour permettre aux pairs de se trouver. Discret fournit une implementation ce serveur nommée Beacon.
Néanmoins, il n'est pas garanti que cela fonctionne à 100%, car certain types de "firewall" d'entreprise peuvent bloquer les tentatives de connexions pair à pair. Pour gérer le problème, il faudrait développer un serveur relai, mais ce n'est pas planifié pour le moment.
Les connexions pair à pair révèlent votre adresse IP. Cela peut vous exposer aux risques suivants:
- découverte de votre adresse réelle par l'utilisation de services de géolocalisation.
- attaque par dénis de service (DOS).
- surveillance gouvernementale. Un gouvernement surveillant le réseau pourrait déterminer avec qui vous vous connectez, lui donnant des informations sur votre réseau social.
Il est donc conseillé de ne vous connecter qu'avec des personnes de confiance.