GitPedia

Nvim utils

Utilities and bindings for writing Neovim plugins in Rust

From willothy·Updated February 12, 2026·View on GitHub·
·Archived

Interacting with Neovim's lua api in Rust can be a bit of a pain. `nvim-utils` aims to make it easier and quicker to develop Neovim plugins in Rust by removing as much of the required boilerplate as possible, and implementing bindings for the `vim.*` lua api. The project is written primarily in Rust, distributed under the MIT License license, first published in 2023. Key topics include: lua-bindings, neovim, neovim-plugins, rust.

Latest release: v0.1.11Nvim-Utils v0.1.11
February 28, 2023View Changelog →

Nvim-Utils: Utilities for writing Neovim plugins in Rust

DeepSource
DeepSource

Interacting with Neovim's lua api in Rust can be a bit of a pain. nvim-utils aims to make it easier and quicker to develop Neovim plugins in Rust by removing as much of the required boilerplate as possible, and implementing bindings for the vim.* lua api.

Warning
This library is no longer maintained.
For a more polished API, check out nvim-oxi.

Current plans

  • Integrate with the Luajit and Neovim C APIs directly
  • Minimize dependencies

Installation

sh
cargo add nvim-utils

Features

nvim-utils provides utilities for:

  • Declaratively building lua modules using mlua
  • Interacting with Neovim's lua api
  • Logging using vim.notify
  • Accessing common lua builtin functions like require and print
  • And more to come!

Documentation

Check out the examples for a simple example plugin, or my plugins moveline and blam for slightly more complex ones.

Open docs.rs/nvim-utils for the full documentation.

Plugins using nvim-utils

If you build a plugin using nvim-utils, submit a PR or let me know and I'll list it here!

Contributors

Showing top 3 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from willothy/nvim-utils via the GitHub API.Last fetched: 6/13/2026