# folke/lazy.nvim

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/folke-lazy-nvim).**

20,305 stars · 547 forks · Lua · apache-2.0

## Links

- GitHub: https://github.com/folke/lazy.nvim
- Homepage: https://lazy.folke.io/
- awesome-repositories: https://awesome-repositories.com/repository/folke-lazy-nvim.md

## Topics

`neovim` `neovim-plugin` `nvim` `package-manager` `plugin-manager`

## Description

This project is a package manager and configuration framework for Neovim, designed to orchestrate the lifecycle of editor extensions. It provides a centralized system for installing, updating, and tracking plugins while ensuring consistent dependency resolution across different environments through the use of lockfiles.

The framework distinguishes itself by prioritizing startup performance and modularity. It employs event-based lazy loading to defer the initialization of extensions until specific user interactions, commands, or file types trigger their activation. To further accelerate the editor, it utilizes bytecode compilation and provides a built-in profiler to analyze loading times and identify performance bottlenecks.

The system supports complex configurations by allowing settings to be split across multiple files, which are then merged into a unified runtime state. It also includes diagnostic tools for monitoring plugin health and status, as well as utilities for generating isolated environments to facilitate testing and debugging. Background processes are used to handle installation and build tasks, ensuring the editor interface remains responsive during operations.

## Tags

### Development Tools & Productivity

- [Package Managers](https://awesome-repositories.com/f/development-tools-productivity/package-managers.md) — The editor downloads and manages third-party packages from repositories to extend the capabilities of the editor beyond the features provided by standard plugins. ([source](https://lazy.folke.io/news))
- [Neovim Plugins](https://awesome-repositories.com/f/development-tools-productivity/neovim-plugins.md) — Functions as a package manager for Neovim that optimizes startup performance through lazy-loading.
- [Package Managers](https://awesome-repositories.com/f/development-tools-productivity/neovim-plugins/package-managers.md) — Provides a centralized system for installing, updating, and tracking plugins with dependency resolution.
- [Plugin Management](https://awesome-repositories.com/f/development-tools-productivity/plugin-management.md) — Provides a centralized system for installing, updating, and managing the lifecycle of editor extensions. ([source](https://lazy.folke.io/))
- [Startup Optimization Tools](https://awesome-repositories.com/f/development-tools-productivity/startup-optimization-tools.md) — Accelerates editor initialization by deferring the loading of extensions until they are triggered by specific events. ([source](https://lazy.folke.io/))
- [Editor Configurations](https://awesome-repositories.com/f/development-tools-productivity/editor-configurations.md) — Supports complex configurations by allowing settings to be split across multiple files for a modular structure.
- [Lifecycle Managers](https://awesome-repositories.com/f/development-tools-productivity/code-editors-ides/extension-ecosystems-management/editor-extensions/editor-tooling/editor-extension-managers/lifecycle-managers.md) — Automates the installation, update, and build processes of third-party packages within the editor.
- [Project Lockfile Management](https://awesome-repositories.com/f/development-tools-productivity/dependency-managers/installation-resolution-utilities/project-lockfile-management.md) — Maintains consistent plugin versions across environments by generating and updating project lockfiles.
- [IDE Extension Requirements](https://awesome-repositories.com/f/development-tools-productivity/ide-extension-requirements.md) — Tracks and enforces plugin dependencies to ensure required components are loaded automatically. ([source](https://lazy.folke.io/spec))
- [Performance Profilers](https://awesome-repositories.com/f/development-tools-productivity/neovim-plugins/performance-profilers.md) — Provides a built-in profiler to analyze loading times and identify performance bottlenecks.
- [Editor Configurations](https://awesome-repositories.com/f/development-tools-productivity/development-environment-management/development-environments/isolated-execution-environments/editor-configurations.md) — Provides isolated environments to facilitate testing and debugging of editor configurations.
- [Performance Profiling](https://awesome-repositories.com/f/development-tools-productivity/performance-optimization-tools/performance-profiling.md) — Analyzes startup times and execution patterns to identify performance bottlenecks in the extension loading sequence. ([source](https://lazy.folke.io/))

### Programming Languages & Runtimes

- [Orchestrators](https://awesome-repositories.com/f/programming-languages-runtimes/programming-language-varieties/programming-languages/dynamic-scripting-languages/lua/plugin-managers/orchestrators.md) — Acts as a configuration framework for managing extensions using modular files and lockfiles.

### Web Development

- [Editor Extension Loaders](https://awesome-repositories.com/f/web-development/performance-optimizations/lazy-loading-strategies/editor-extension-loaders.md) — Loads extensions only when triggered by specific editor events, commands, or file types. ([source](https://lazy.folke.io/spec))
- [Lazy Loading Strategies](https://awesome-repositories.com/f/web-development/performance-optimizations/lazy-loading-strategies.md) — Defers extension initialization until specific user interactions or editor events occur to reduce startup latency.

### Software Engineering & Architecture

- [Bytecode Caching](https://awesome-repositories.com/f/software-engineering-architecture/performance-reliability/performance-optimization/caching-memoization/bytecode-caching.md) — Compiles plugin source code into bytecode to eliminate runtime parsing overhead and accelerate startup.
- [Configuration Modularization](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/configuration-management/automation-and-templating-frameworks/configuration-modularization.md) — Combines fragmented plugin definitions from multiple files into a unified runtime configuration state.
- [Background Processing](https://awesome-repositories.com/f/software-engineering-architecture/background-processing.md) — Offloads installation and build tasks to background processes to maintain editor responsiveness.
