Éditeur P2P
Éditeur de code P2P pour les sessions de codage en direct qui fonctionnent dans le navigateur.
Cet univers P2P parallèle est encore très sombre. Créez une étoile si vous voulez la rendre plus lumineuse?
Explorez l'univers »
Démo en ligne · Feuille de route · contribuer
Table des matières
- Que fait l'éditeur P2P?
- ? Pourquoi P2P?
- Avantages de P2P
- Complexités supplémentaires d'être entièrement distribuée
- Architecture
- Configuration de l'environnement
- ? Outils nécessaires
- Configuration de l'environnement
- ? Exécution de l'application
- ✅ Teste l'exécution
- Démo en direct
- À propos
- ? Contributif
- ⚖️ Licence
Que fait l'éditeur P2P?
L'éditeur P2P est un éditeur de code qui fonctionne dans le navigateur qui vous permet de partager des sessions de codage en direct. Voyez-le par vous-même partager une nouvelle session:
- Ouvrez une session d'éditeur P2P dans votre navigateur
- Partagez votre URL de session avec quelqu'un d'autre (ou même avec vous-même dans une autre fenêtre de navigateur?)
- Commencez à taper et profitez de l'expérience en temps réel!
Les fonctionnalités sont limitées pour l'instant, mais nous avons une feuille de route et quelques bons premiers problèmes pour rendre l'éditeur P2P génial. Jetez un œil à la section contributive si vous voulez vous impliquer ?.
? Pourquoi P2P?
Nous avons supprimé la nécessité d'avoir un serveur centralisé où toutes les modifications sont enregistrées. La communication est effectuée à partir d'un pair (un utilisateur connecté) à l'autre. Ce faisant, nous avons certains avantages, mais nous devons également prendre en compte la complexité supplémentaire:
Avantages de P2P
- Communication directe: réduire la latence et la bande passante.
- Pas de serveurs: pas de cloud, pas de mise à l'échelle, pas de déploiement, pas de devops ...
- Pas de SaaS:
- Disponibilité.
- Aucune restriction d'utilisation.
- Aucune utilisation inconnue (malveillante ou non) de vos données.
Complexités supplémentaires d'être entièrement distribuée
- Cohérence des données.
- Partition / topologie du réseau.
- Découverte des pairs et établissement de connexion.
- Authentification / autorisation.
- Sécurité et confidentialité.
Nous avons un intérêt particulier pour le développement des applications P2P. Vous pouvez en savoir plus dans la section à propos.
Architecture

Blocs de construction de l'éditeur P2P:
- Éditeur de code: Ace
- Base de données: Ajouter uniquement le journal (hypercore)
- Communication: Webbrtc RTCDatachannel (WebBrtc-Swarm)
- Découverte de pairs: serveur de signalisation WebrTC (SignalHub)
- Stockage: RAM
Flux de travail:
- Les pairs sont découverts via le serveur de signalisation.
- Pour chaque modification apportée à l'éditeur, un delta représentant ce changement est ajouté à la base de données HyperCore.
- La base de données HyperCore se reproduit constamment entre tous les pairs via WeBrTC RTCDATACHANNEL.
- Lorsqu'un pair reçoit un delta, il est appliqué à son instance d'éditeur.
Configuration de l'environnement
? Outils nécessaires
- Installer Docker
- Clone Ce projet:
git clone https://github.com/CodelyTV/p2p-editor - Passez au dossier du projet:
cd p2p-editor
Configuration de l'environnement
- Copiez les variables d'environnement par défaut:
cp .env.dist .env - Modifier les variables d'environnement si nécessaire:
vim .env
? Exécution de l'application
- Démarrez l'application avec Docker Compose:
docker-compose up - Aller sur http: // localhost: 3617
✅ Teste l'exécution
- Exécuter des tests unitaires:
docker-compose run p2p-editor test
Démo en direct
- Pour démarrer une nouvelle session de code en direct, ouvrez http://p2p-editor.codely.tv.
- Partagez l'URL avec les utilisateurs que vous souhaitez rejoindre la session.
- Commencez à modifier le fichier.
C'est tout! Tous les changements se reflètent instantanément dans l'éditeur de pairs connecté.
Happy p2p codage!
À propos
Nous avons commencé ce projet dans le contexte d'un processus d'apprentissage sur les communications P2P dans un environnement Web. Le but de l'éditeur P2P est d'appliquer une approche d'apprentissage en faisant une approche où nous pouvons partager nos apprentissages avec la communauté tout en construisant quelque chose d'utile.
Nous publions toutes les ressources d'apprentissage que nous avons trouvées utiles dans le référentiel P2P impressionnant. N'hésitez pas à le vérifier et à ajouter vos liens préférés aussi!
La mise en œuvre initiale de l'éditeur P2P est basée sur le travail Mathias BUUS. Dans le cas où vous liriez ceci, merci beaucoup d'avoir partagé tant de ressources et de connaissances gratuites (libre)?
L'éditeur P2P est un logiciel libre non bénéfice pris en charge par les contributions des utilisateurs et CodelyTV.
? Contributif
Comment pouvez-vous contribuer?
- Rapport des bogues.
- Fournir des commentaires et suggérer de nouvelles fonctionnalités.
- Donner au repo une étoile.
- S'impliquer dans le développement de problèmes de résolution étiquetés comme
good first issue . - Ajouter des ressources d'apprentissage au référentiel P2P impressionnant.
Vous pouvez avoir une idée de la feuille de route de l'éditeur P2P en regardant l'arriéré et le wiki.
⚖️ Licence
La licence MIT (MIT). Veuillez consulter la licence pour plus d'informations.