Editor de P2P
Editor de código P2P para sesiones de codificación en vivo que funcionan en el navegador.
Este universo P2P paralelo sigue siendo muy oscuro. ¿Crea una estrella si quieres hacerlo más brillante?
Explorar el universo »
Demostración en línea · hoja de ruta · contribuir
Tabla de contenido
- ¿Qué hace el editor P2P?
- ? ¿Por qué P2P?
- Beneficios de P2P
- Complejidades adicionales de estar completamente distribuido
- Arquitectura
- Configuración del medio ambiente
- ? Herramientas necesarias
- Configuración del entorno
- ? Ejecución de la aplicación
- ✅ Ejecución de pruebas
- Demostración en vivo
- Acerca de
- ? Que contribuye
- ⚖️ Licencia
¿Qué hace el editor P2P?
El editor P2P es un editor de código que funciona en el navegador que le permite compartir sesiones de codificación en vivo. Véalo solo compartiendo una nueva sesión:
- Abra una sesión de editor P2P en su navegador
- ¿Comparte su URL de sesión con otra persona (o incluso con usted en otra ventana del navegador?)
- ¡Empiece a escribir y disfruta de la experiencia en tiempo real!
Las funcionalidades son limitadas por ahora, pero tenemos una hoja de ruta y algunos buenos primeros problemas para que el editor de P2P sea increíble. ¿Echa un vistazo a la sección contribuyente si quieres involucrarte?
? ¿Por qué P2P?
Hemos eliminado la necesidad de tener un servidor centralizado donde se guarden todos los cambios. La comunicación se realiza desde un par (un usuario conectado) al otro. Al hacer esto, tenemos algunos beneficios, pero también tenemos que tener en cuenta la complejidad adicional:
Beneficios de P2P
- Comunicación directa: reduzca la latencia y el ancho de banda.
- Sin servidores: sin nube, sin escala, sin implementación, sin devops ...
- No SaaS:
- Disponibilidad.
- Sin restricción de uso.
- No hay uso desconocido (malicioso o no) de sus datos.
Complejidades adicionales de estar completamente distribuido
- Consistencia de datos.
- Partición de red / topología.
- Descubrimiento de pares y establecimiento de conexión.
- Autenticación / autorización.
- Seguridad y privacidad.
Tenemos un interés particular en el desarrollo de aplicaciones P2P. Puedes leer más en la sección Acerca de.
Arquitectura

Bloques de construcción del editor P2P:
- Editor de código: ACE
- Base de datos: registrar solo el registro (Hypercore)
- Comunicación: WEBRTC RTCDATACHANNEL (WEBRTC-SATARM)
- Descubrimiento de pares: servidor de señalización WEBRTC (Camiseta de señal)
- Almacenamiento: RAM
Flujo de trabajo:
- Los pares se descubren a través del servidor de señalización.
- Para cada cambio realizado en el editor, un delta que representa ese cambio se adjunta a la base de datos Hypercore.
- La base de datos Hypercore replica constantemente entre todos los pares a través de WebRTC RTCDATACHANNEL.
- Cuando un par recibe un delta, se aplica a su instancia de editor.
Configuración del medio ambiente
? Herramientas necesarias
- Instalar Docker
- Clone Este proyecto:
git clone https://github.com/CodelyTV/p2p-editor - Pase a la carpeta del proyecto:
cd p2p-editor
Configuración del entorno
- Copie las variables de entorno predeterminadas:
cp .env.dist .env - Modificar las variables de entorno si es necesario:
vim .env
? Ejecución de la aplicación
- Inicie la aplicación con Docker Compose:
docker-compose up - Vaya a http: // localhost: 3617
✅ Ejecución de pruebas
- Ejecutar pruebas unitarias:
docker-compose run p2p-editor test
Demostración en vivo
- Para comenzar una nueva sesión de código en vivo, abra http://p2p-editor.codely.tv.
- Comparta la URL con los usuarios que desea unirse a la sesión.
- Comience a editar el archivo.
¡Eso es todo! Todos los cambios se reflejan instantáneamente en el editor de pares conectados.
¡Feliz codificación P2P!
Acerca de
Comenzamos este proyecto en el contexto de un proceso de aprendizaje sobre las comunicaciones P2P en un entorno web. El propósito del editor de P2P es aplicar un enfoque de aprendizaje al hacer un enfoque donde podemos compartir nuestros aprendizajes con la comunidad mientras construyen algo útil.
Estamos publicando todos los recursos de aprendizaje que encontramos útiles en el impresionante repositorio P2P. ¡No dude en verlo y agregar sus enlaces favoritos también!
La implementación inicial del editor P2P se basa en el trabajo de Mathias Buus. En caso de que leas esto, ¿muchas gracias por compartir tantos recursos y conocimientos gratuitos (libra)?
El editor P2P es un software gratuito sin ganancias compatible con las contribuciones del usuario y CodelyTV.
? Que contribuye
¿Cómo puedes contribuir?
- Informes de errores.
- Proporcionar retroalimentación y sugerir nuevas características.
- Darle al repositorio una estrella.
- Involucrarse en el desarrollo de los problemas etiquetados como
good first issue . - Agregar recursos de aprendizaje al increíble repositorio P2P.
Puede tener una idea de la hoja de ruta del editor P2P mirando la cartera de pedidos y el wiki.
⚖️ Licencia
La licencia MIT (MIT). Consulte la licencia para obtener más información.