A secure, real-time remote collaboration system for the Neovim text editor.
This project was developed for the "Komputerowe i Sieciowe Systemy Operacyjne" course at the Warsaw University of Technology (WEITI, PW).
- Karol Adamski
- Bartłomiej Masiak
- Real-time Synchronization: Instantly syncs file content and edits between a host and multiple guests.
- Virtual Cursors: Displays the cursors of other connected users directly in your buffer using Neovim namespaces and extmarks.
- Secure Architecture:
- The backend server listens only on the loopback interface (
127.0.0.1) to prevent direct external access. - Communication between clients and the server is strictly routed through encrypted SSH tunnels.
- The server process is isolated using AppArmor, restricting access to the file system to prevent privilege escalation.
- Incoming traffic is filtered via
iptables.
- The backend server listens only on the loopback interface (
- Client / Plugin: Lua (using Neovim's API)
- Backend Server: Rust (using
tokiofor asynchronous I/O) - Protocol: JSON over TCP sockets
- Infrastructure & Security: Linux, Systemd, OpenSSH, AppArmor, Iptables, Zabbix