# What is lde? You stylize lde in all lowercase and it stands for lua development environment. It is a fast, package manager, runtime, compiler and test runner for Lua(JIT), written in LuaJIT. It intends to replace the use for luarocks, or manually setting up lua, on any system. It supports linux, windows, macos, android(termux) on x86 and arm64. # Creating a new project Users can scaffold lde projects via the interactive tui in 'lde new', or programmatically passing options to it with 'lde new --type= --language= --name=foo ./foo' More than just lua is supported, teal and moonscript work out of the box. # How does lde work? The main entrypoint of lde packages (the term "package" is used) is ./src/init.lua, which you can run via 'lde run', which is a shorthand for running 'lde run ./src/init.lua' What sets lde apart from luarocks and other package managers is that it does not pollute the system lua installation via adjusting lua's PATH, it simply links your code into a ./target/packagename/* for all files, and adds the target directory to package.path. This same mechanism is still used to support luarocks packages which are supported via copying the files into target. Source: https://lde.sh/docs - [Analyzing Bloat](https://lde.sh/docs/bundler/features/bloat.md) - [Cross Compilation](https://lde.sh/docs/bundler/features/cross-compilation.md) - [Bundler](https://lde.sh/docs/bundler/getting-started/introduction.md) - [REPL](https://lde.sh/docs/general/features/repl.md) - [Package Scripts](https://lde.sh/docs/general/features/package-scripts.md) - [Executing Packages](https://lde.sh/docs/general/features/executing-packages.md) - [Introduction](https://lde.sh/docs/general/getting-started/introduction.md) - [Installation](https://lde.sh/docs/general/getting-started/installation.md) - [Requirements](https://lde.sh/docs/general/getting-started/requirements.md) - [Why Lua?](https://lde.sh/docs/general/getting-started/why-lua.md) - [Using LÖVE](https://lde.sh/docs/general/guides/using-love2d.md) - [Using OpenResty](https://lde.sh/docs/general/guides/using-openresty.md) - [Using Neovim](https://lde.sh/docs/general/guides/using-neovim.md) - [Porting From LuaRocks](https://lde.sh/docs/general/guides/porting-to-lde.md) - [Manifest Reference](https://lde.sh/docs/general/misc/manifest-reference.md) - [Windows Toolchain](https://lde.sh/docs/general/misc/windows-toolchain.md) - [Custom Registry](https://lde.sh/docs/general/misc/custom-registry.md) - [Monorepos](https://lde.sh/docs/general/misc/monorepos.md) - [Native Modules](https://lde.sh/docs/general/misc/c-module-support.md) - [Upgrading lde](https://lde.sh/docs/general/setup/upgrade.md) - [Shell Completion](https://lde.sh/docs/general/setup/completions.md) - [Writing a Web Server](https://lde.sh/docs/general/tutorials/web-server.md) - [Writing a Discord Bot](https://lde.sh/docs/general/tutorials/discord-bot.md) - [Build Api](https://lde.sh/docs/package-manager/api/build.md) - [Build Scripts](https://lde.sh/docs/package-manager/features/build-scripts.md) - [Lockfile](https://lde.sh/docs/package-manager/features/lockfile.md) - [Optional Dependencies](https://lde.sh/docs/package-manager/features/optional-dependencies.md) - [Searching Packages](https://lde.sh/docs/package-manager/features/search.md) - [Timing Builds](https://lde.sh/docs/package-manager/features/timings.md) - [Introduction](https://lde.sh/docs/package-manager/getting-started/introduction.md) - [LuaRocks](https://lde.sh/docs/package-manager/getting-started/luarocks.md) - [Registry](https://lde.sh/docs/registry/getting-started/introduction.md) - [Publishing](https://lde.sh/docs/registry/guides/publish.md) - [Namespaces](https://lde.sh/docs/registry/guides/namespaces.md) - [Profiling](https://lde.sh/docs/runtime/features/profiling.md) - [JIT Debugging](https://lde.sh/docs/runtime/features/jit-debugging.md) - [Watch Mode](https://lde.sh/docs/runtime/features/watch-mode.md) - [Hot Reloading](https://lde.sh/docs/runtime/features/hot-reload.md) - [Runtime](https://lde.sh/docs/runtime/getting-started/runtime.md) - [Teal](https://lde.sh/docs/runtime/getting-started/teal.md) - [MoonScript](https://lde.sh/docs/runtime/getting-started/moonscript.md) - [Test Api](https://lde.sh/docs/test-runner/api/test.md) - [Fixtures](https://lde.sh/docs/test-runner/features/fixtures.md) - [Coverage](https://lde.sh/docs/test-runner/features/coverage.md) - [Filtering](https://lde.sh/docs/test-runner/features/filtering.md) - [Test Runner](https://lde.sh/docs/test-runner/getting-started/introduction.md) # Blog posts, if useful - [Release v0.11.0](https://lde.sh/blog/lde-0.11.0.md): Published 2026-09-18 - [Release v0.10.0](https://lde.sh/blog/lde-0.10.0.md): Published 2026-08-03 - [Release v0.9.1](https://lde.sh/blog/lde-0.9.1.md): Published 2026-04-12 - [Release v0.9.0](https://lde.sh/blog/lde-0.9.0.md): Published 2026-04-06 - [Release v0.8.1](https://lde.sh/blog/lde-0.8.1.md): Published 2026-03-27 - [Release v0.8.0](https://lde.sh/blog/lpm-0.8.0.md): Published 2026-03-26 - [Release v0.7.2](https://lde.sh/blog/lpm-0.7.2.md): Published 2026-03-24 - [Release v0.7.1](https://lde.sh/blog/lpm-0.7.1.md): Published 2026-03-15 - [Release v0.7.0](https://lde.sh/blog/lpm-0.7.0.md): Published 2026-03-14 - [Release v0.6.3](https://lde.sh/blog/lpm-0.6.3.md): Published 2026-03-04 - [Experimenting with busted ported to lpm](https://lde.sh/blog/busted-on-lpm.md): Published 2026-02-22 - [Release v0.6.2](https://lde.sh/blog/lpm-0.6.2.md): Published 2026-02-21 - [Release v0.6.1](https://lde.sh/blog/lpm-0.6.1.md): Published 2026-02-20 - [Release v0.6.0](https://lde.sh/blog/lpm-0.6.0.md): Published 2026-02-18