Editor P2P
Editor de código P2P para sessões de codificação ao vivo que funcionam no navegador.
Este universo P2P paralelo ainda está muito escuro. Crie uma estrela se você quiser torná -lo mais brilhante?
Explore o universo »
Demonstração on -line · Roteiro · contribuir
Índice
- O que o editor P2P faz?
- ? Por que P2P?
- Benefícios do P2P
- Complexidades adicionais de serem totalmente distribuídas
- Arquitetura
- Configuração do ambiente
- ? Ferramentas necessárias
- Configuração do ambiente
- ? Execução do aplicativo
- ✅ Execução de testes
- Demoção ao vivo
- Sobre
- ? Contribuindo
- ⚖️ Licença
O que o editor P2P faz?
O P2P Editor é um editor de código que funciona no navegador que permite compartilhar sessões de codificação ao vivo. Veja por si mesmo compartilhando uma nova sessão:
- Abra uma sessão do editor P2P em seu navegador
- Compartilhe seu URL da sessão com outra pessoa (ou mesmo consigo mesmo em outra janela do navegador?)
- Comece a digitar e aproveite a experiência em tempo real!
As funcionalidades são limitadas por enquanto, mas temos um roteiro e alguns bons primeiros problemas para tornar o editor P2P incrível. Dê uma olhada na seção que contribui se quiser se envolver?
? Por que P2P?
Removamos a necessidade de ter um servidor centralizado onde todas as alterações sejam salvas. A comunicação é feita de um par (um usuário conectado) para o outro. Ao fazer isso, temos alguns benefícios, mas também precisamos levar em consideração a complexidade adicional:
Benefícios do P2P
- Comunicação direta: reduza a latência e a largura de banda.
- Sem servidores: sem nuvem, sem escala, sem implantação, sem devOps ...
- Sem SaaS:
- Disponibilidade.
- Sem restrição de uso.
- Nenhum uso desconhecido (malicioso ou não) de seus dados.
Complexidades adicionais de serem totalmente distribuídas
- Consistência dos dados.
- Partição de rede / topologia.
- Descoberta de pares e estabelecimento de conexão.
- Autenticação / autorização.
- Segurança e privacidade.
Temos um interesse particular no desenvolvimento de aplicativos P2P. Você pode ler mais na seção Sobre.
Arquitetura

P2P Editor de editor de blocos de construção:
- Editor de código: ACE
- Banco de dados: Anexar apenas log (hipercore)
- Comunicação: Webrtc rtcdatachannel (webrtc-swarm)
- Descoberta por pares: servidor de sinalização WebRTC (SignalHub)
- Armazenamento: RAM
Fluxo de trabalho:
- Os colegas são descobertos via servidor de sinalização.
- Para cada alteração feita no editor, um delta que representa essa alteração é anexado ao banco de dados de hipercore.
- O banco de dados Hypercore está constantemente replicando entre todos os pares via WebRTC RTCDATACHANNEL.
- Quando um colega recebe um delta, ele é aplicado à sua instância do editor.
Configuração do ambiente
? Ferramentas necessárias
- Instale o docker
- Clone este projeto:
git clone https://github.com/CodelyTV/p2p-editor - Mova para a pasta do projeto:
cd p2p-editor
Configuração do ambiente
- Copie as variáveis de ambiente padrão:
cp .env.dist .env - Modifique as variáveis do ambiente, se necessário:
vim .env
? Execução do aplicativo
- Inicie o aplicativo com o Docker Compose:
docker-compose up - Vá para http: // localhost: 3617
✅ Execução de testes
- Testes de unidade de execução:
docker-compose run p2p-editor test
Demoção ao vivo
- Para iniciar uma nova sessão de código ao vivo, abra http://p2p-editor.codely.tv.
- Compartilhe o URL com os usuários que você deseja participar da sessão.
- Comece a editar o arquivo.
Isso é tudo! Todas as alterações são refletidas instantaneamente no editor de pares conectados.
Feliz codificação P2P!
Sobre
Iniciamos este projeto no contexto de um processo de aprendizado sobre as comunicações P2P em um ambiente da Web. O objetivo do editor P2P é aplicar uma abordagem de aprender, onde podemos compartilhar nossos aprendizados com a comunidade enquanto construía algo útil.
Estamos publicando todos os recursos de aprendizado que achamos úteis no incrível repositório P2P. Sinta -se à vontade para conferir e adicionar seus links favoritos também!
A implementação inicial do editor P2P é baseada no trabalho de Mathias Buus. Caso você leia isso, muito obrigado por compartilhar tantos recursos e conhecimentos gratuitos (libre)?
O editor P2P é um software livre sem lucros suportado por contribuições do usuário e codelytv.
? Contribuindo
Como você pode contribuir?
- Relatórios de bugs.
- Fornecendo feedback e sugerindo novos recursos.
- Dando ao repo uma estrela.
- Envolvendo -se na resolução de problemas de desenvolvimento rotulados como
good first issue . - Adicionando recursos de aprendizado ao incrível repositório P2P.
Você pode ter uma idéia do roteiro do editor P2P, olhando para o backlog e o wiki.
⚖️ Licença
A licença do MIT (MIT). Consulte a licença para obter mais informações.