{"repo":"noib3/nvim-oxi","free":true,"listed":false,"github":"https://github.com/noib3/nvim-oxi","clone":"git clone https://github.com/noib3/nvim-oxi.git","description":":link: Rust bindings to all things Neovim","language":"Rust","stars":1135,"topics":["neovim","rust","rust-bindings"],"license":"MIT","category":"dev-tools","readme_excerpt":"🔗 nvim-oxi [![Latest version]](https://crates.io/crates/nvim-oxi) [![CI]](https://github.com/noib3/nvim-oxi/actions) [![Docs]](https://docs.rs/nvim-oxi) [Latest version]: https://img.shields.io/crates/v/nvim-oxi.svg [CI]: https://github.com/noib3/nvim-oxi/actions/workflows/ci.yaml/badge.svg [Docs]: https://docs.rs/nvim-oxi/badge.svg nvim-oxi provides safe and idiomatic Rust bindings to the rich API exposed by the Neovim text editor. The project is mostly intended for plugin authors, although nothing's stopping end users from writing their Neovim configs in Rust. How The traditional way to write Neovim plugins in languages other than the \"builtin\" ones, i.e. Vimscript or Lua, is via RPC channels. This approach comes with a few limitations mostly due to having to (de)serialize everything to MessagePack-encoded messages, prohibiting things like attaching callbacks to keymaps or scheduling functions. nvim-oxi takes a different approach. It leverages Rust's foreign function interface (FFI) support to hook straight into the Neovim C code, allowing feature parity with \"in process\" plugins while also avoiding the need for an extra IO layer. This thread on the Neovim discourse goes into a bit more detail for anyone who's interested. Why Why bother when Neovim already has Lua as a first-class citizen? Mainly two reasons: - access to the Rust ecosystem: Lua is a great, minimal scripting language but can also be limiting when writing more complex plugins. In contrast Rust is a fully-fle","default_branch":null,"files":null,"tree":[],"storefront":"/r/noib3","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/noib3/nvim-oxi/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}