Skip to content
nrest.nvim v0.1.0 - Initial Release

Fast and lightweight HTTP REST client for Neovim.

- Full REST client functionality with all HTTP methods
- Asynchronous request execution with curl
- Syntax highlighting for .http files
- Multiple request support with cursor-based execution
- Zero Lua dependencies (only requires curl)

- Basic Auth with pure Lua Base64 encoding (security hardened)
- Bearer Token support
- API Key authentication
- Digest authentication

- User-defined variables with {{name}} syntax
- System environment variables ($VAR, ${VAR})
- Auto-discovery of .env.http files
- Variable substitution in URLs, headers, and body

- 69 automated test cases (parser, variables, auth)
- CI/CD pipelines for GitLab and GitHub
- Tests against Neovim 0.8.0 through nightly
- Complete LuaDoc API documentation
- Health check system (:checkhealth nrest)

- Pure Lua Base64 encoding (prevents shell injection)
- Header validation (prevents command injection)
- Callback race condition guard

- JSON formatting with jq
- Foldable headers section
- Configurable response display
- Automatic redirect handling

- Neovim >= 0.8.0
- curl (required)
- jq (optional, for JSON formatting)

lazy.nvim:
```lua
{
  'https://gitlab.ttu.ch/matthias/nrest.git',
  ft = 'http',
  config = function()
    require('nrest').setup()
  end,
}
```

See README.md for complete documentation.