https://github.com/wolfenrain/lua-lsp-worker
A Cloudflare Worker that provides Lua Language Server functionality over WebSocket. Includes a web-based Monaco editor playground.
https://github.com/wolfenrain/lua-lsp-worker
cloudflare lsp-server lua
Last synced: 18 days ago
JSON representation
A Cloudflare Worker that provides Lua Language Server functionality over WebSocket. Includes a web-based Monaco editor playground.
- Host: GitHub
- URL: https://github.com/wolfenrain/lua-lsp-worker
- Owner: wolfenrain
- License: mit
- Created: 2026-01-12T17:17:55.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-01-12T18:08:42.000Z (about 1 month ago)
- Last Synced: 2026-01-12T23:06:37.158Z (about 1 month ago)
- Topics: cloudflare, lsp-server, lua
- Language: HTML
- Homepage: https://lua.wolfenrain.dev
- Size: 52.7 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Lua LSP Worker
[](https://github.com/wolfenrain/lua-lsp-worker/actions/workflows/worker.yml)
[](https://github.com/wolfenrain/lua-lsp-worker/actions/workflows/container.yml)
A Cloudflare Worker that provides [Lua Language Server](https://github.com/LuaLS/lua-language-server) functionality over WebSocket. Includes a web-based Monaco editor playground.
## Live Demo
Try it out at [lua.wolfenrain.dev](https://lua.wolfenrain.dev)
## Features
- Full LSP support for Lua via WebSocket
- Web-based Monaco editor with LSP integration
- Autocompletion, hover information, diagnostics
- Support for LuaLS annotations (`---@class`, `---@param`, etc.)
- Each connection gets an isolated LSP instance
The worker routes WebSocket connections to Cloudflare containers. Each container runs a Rust bridge that translates between WebSocket JSON messages and the LSP's stdio protocol.
## Local Development
### Prerequisites
- Node.js 22+
- Docker (for container development)
- Rust (for container development)
### Running the Worker
```bash
npm install
npm run cf-typegen
npm run dev
```
Open http://localhost:8787 in your browser.
### Container Development
```bash
cd container
cargo test
cargo build --release
```
## Deployment
Requires Cloudflare account on the paid plan.
```bash
npm run deploy
```