Editor P2P
Editor Kode P2P untuk sesi pengkodean langsung yang berfungsi di browser.
Alam semesta P2P paralel ini masih sangat gelap. Buat bintang jika Anda ingin membuatnya lebih cerah?
Jelajahi Semesta »
Demo online · peta jalan · berkontribusi
Daftar isi
- Apa yang dilakukan editor P2P?
- ? Mengapa P2P?
- Manfaat P2P
- Kompleksitas yang ditambahkan untuk didistribusikan sepenuhnya
- Arsitektur
- Pengaturan Lingkungan
- ? Alat yang dibutuhkan
- Konfigurasi Lingkungan
- ? Eksekusi Aplikasi
- ✅ Tes eksekusi
- Demo langsung
- Tentang
- ? Berkontribusi
- ⚖️ Lisensi
Apa yang dilakukan editor P2P?
Editor P2P adalah editor kode yang berfungsi di browser yang memungkinkan Anda berbagi sesi pengkodean langsung. Lihat sendiri berbagi sesi baru:
- Buka sesi editor P2P di browser Anda
- Bagikan URL sesi Anda dengan orang lain (atau bahkan dengan diri Anda di jendela browser lain?)
- Mulailah mengetik dan nikmati pengalaman waktu nyata!
Fungsionalitasnya terbatas untuk saat ini, tetapi kami memiliki peta jalan dan beberapa masalah pertama yang bagus untuk membuat editor P2P mengagumkan. Lihatlah bagian yang berkontribusi jika Anda ingin terlibat?
? Mengapa P2P?
Kami telah menghapus kebutuhan memiliki server terpusat di mana semua perubahan disimpan. Komunikasi dilakukan dari satu rekan (pengguna yang terhubung) ke yang lain. Dengan melakukan ini, kami memiliki beberapa manfaat, tetapi kami juga harus mempertimbangkan kompleksitas tambahan:
Manfaat P2P
- Komunikasi Langsung: Kurangi latensi dan bandwidth.
- Tidak ada server: Tidak ada cloud, tidak ada penskalaan, tidak ada penyebaran, tidak ada devop ...
- Tidak ada SaaS:
- Tersedianya.
- Tidak ada batasan penggunaan.
- Tidak ada penggunaan data Anda yang tidak diketahui (berbahaya atau tidak).
Kompleksitas yang ditambahkan untuk didistribusikan sepenuhnya
- Konsistensi data.
- Partisi Jaringan / Topologi.
- Penemuan rekan dan pembentukan koneksi.
- Otentikasi / Otorisasi.
- Keamanan dan privasi.
Kami memiliki minat khusus dalam pengembangan aplikasi P2P. Anda dapat membaca lebih lanjut di bagian Tentang.
Arsitektur

Blok bangunan editor P2P:
- Editor Kode: ACE
- Database: Tambahkan Log Hanya (Hypercore)
- Komunikasi: WEBRTC RTCDATACHANNEL (WEBRTC-SWARM)
- Peer Discovery: WebRTC Signaling Server (SignalHub)
- Penyimpanan: RAM
Alur kerja:
- Peers ditemukan melalui server pensinyalan.
- Untuk setiap perubahan yang dilakukan di editor, sebuah delta yang menyatakan bahwa perubahan ditambahkan ke basis data hypercore.
- Hypercore Database terus -menerus mereplikasi antara semua rekan melalui WEBRTC rtcdatachannel.
- Ketika rekan menerima delta, ia diterapkan pada instance editornya.
Pengaturan Lingkungan
? Alat yang dibutuhkan
- Instal Docker
- Klon proyek ini:
git clone https://github.com/CodelyTV/p2p-editor - Pindah ke folder proyek:
cd p2p-editor
Konfigurasi Lingkungan
- Salin variabel lingkungan default:
cp .env.dist .env - Ubah variabel lingkungan jika diperlukan:
vim .env
? Eksekusi Aplikasi
- Mulai aplikasi dengan Docker Compose:
docker-compose up - Pergi ke http: // localhost: 3617
✅ Tes eksekusi
- Eksekusi Tes Unit:
docker-compose run p2p-editor test
Demo langsung
- Untuk memulai Sesi Kode Langsung Baru Buka http://p2p-editor.codely.tv.
- Bagikan URL dengan pengguna yang ingin Anda ikuti sesi.
- Mulailah mengedit file.
Itu saja! Semua perubahan langsung tercermin dalam editor rekan yang terhubung.
Selamat P2P Coding!
Tentang
Kami memulai proyek ini dalam konteks proses pembelajaran tentang komunikasi P2P di lingkungan web. Tujuan editor P2P adalah untuk menerapkan pembelajaran dengan melakukan pendekatan di mana kami dapat berbagi pembelajaran kami dengan komunitas sambil membangun sesuatu yang berguna.
Kami menerbitkan semua sumber belajar yang kami temukan berguna dalam repositori P2P yang luar biasa. Jangan ragu untuk memeriksanya dan menambahkan tautan favorit Anda juga!
Implementasi awal editor P2P didasarkan pada pekerjaan Mathias Buus. Jika Anda membaca ini, terima kasih banyak telah berbagi begitu banyak sumber daya dan pengetahuan gratis (Libre)?
P2P Editor adalah perangkat lunak bebas nirlaba yang didukung oleh kontribusi pengguna dan CodelyTV.
? Berkontribusi
Bagaimana Anda bisa berkontribusi?
- Melaporkan bug.
- Memberikan umpan balik dan menyarankan fitur baru.
- Memberi repo bintang.
- Terlibat dalam masalah penyelesaian pengembangan yang diberi label sebagai
good first issue . - Menambahkan sumber belajar ke repositori P2P yang luar biasa.
Anda bisa mendapatkan gambaran tentang peta jalan editor P2P yang melihat backlog dan wiki.
⚖️ Lisensi
Lisensi MIT (MIT). Silakan lihat lisensi untuk informasi lebih lanjut.