This repository contains the Rust backend that powers the core functionality of the pairwriter.nvim Neovim plugin and pairwriter-vsc Visual Studio Code extension. The backend provides efficient and reliable text synchronization, leveraging Rust's performance and safety features, and is exposed via Foreign Function Interface (FFI) for integration with these front-end tools.
- High Performance: Built in Rust for speed and memory safety.
- FFI Integration: Exposes a C-compatible API for interaction with Neovim and Visual Studio Code via plugins/extensions.
- Text Synchronization: Provides robust mechanisms for text editing collaboration and synchronization across multiple platforms.
- Cross-Platform Support: Works on major operating systems including Linux, macOS, and Windows.
The pairwriter.nvim plugin relies on this backend to provide its core functionality. To set it up:
- Install the pairwriter.nvim plugin.
- Ensure that the shared library generated by this backend is accessible to Neovim.
- Configure the plugin to use the backend library for communication and synchronization.
For more details, refer to the pairwriter.nvim README.
Similarly, pairwriter-vsc uses this backend to power its features. After building the backend:
- Install the pairwriter-vsc extension.
- Configure the extension to load the backend's shared library.
- The extension will communicate with the backend to handle real-time text synchronization and editing features.
For detailed setup instructions, please refer to the pairwriter-vsc README.
Contributions are welcome! Feel free to open issues, submit pull requests, or propose new features to improve the backend and its integration with Neovim and Visual Studio Code.
This project is currently in the prototype stage. While it provides a basic level of functionality through FFI integration, future development could include implementing a dedicated Language Server Protocol (LSP) layer of communication. This would enable a more robust and feature-rich text synchronization experience, as well as open the door for additional collaborative features and editor integrations beyond Neovim and Visual Studio Code.
Stay tuned for future updates as the project evolves!
This project is licensed under the MIT License. See the LICENSE file for details.