luat Svelte Themes

Luat

Svelte-inspired server-side Lua templating for Rust

luat logo

Svelte-inspired server-side Lua templating for Rust.

Crates.io Documentation CI License

WebsiteGetting StartedSyntax GuideEditor Support


⚠️ Early Release - This is the first public release of Luat. The API is still evolving and not yet production-ready. Feedback and contributions are welcome.

Luat example app screenshot

Features

  • Svelte-like syntax - Familiar {#if}, {#each}, components, and expressions
  • Server-side rendering - Pure SSR with no client hydration overhead
  • Component system - Reusable components with props and children
  • Lua-powered - Templates compile to Lua for fast execution
  • CLI with live reload - Development server with automatic browser refresh

Installation

# npm (recommended)
npm install -g @maravilla-labs/luat

# Shell script (Linux/macOS)
curl -fsSL https://raw.githubusercontent.com/maravilla-labs/luat/main/scripts/install.sh | sh

# Cargo (Rust developers)
cargo install luat-cli

Quick Start

luat init my-app
cd my-app
luat dev

Example

<!-- HomePage.luat -->
<script>
    local Card = require("components/Card")
    local title = "Welcome to LUAT"
    local subtitle = "Build dynamic web applications"
</script>

<div class="homepage">
    <Card title={title} subtitle={subtitle} />
</div>

For the full syntax guide, see the documentation. There's also a live playground to try Luat in your browser.

Documentation

Editor Support

Get syntax highlighting, diagnostics, and autocomplete for .luat files:

  • VSCode Extension - Full language support with LSP integration
  • LSP Server - Works with any LSP-compatible editor (Neovim, Helix, etc.)

See luat-tools for installation instructions.

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

License

Licensed under either of Apache-2.0 or MIT at your option.

Credits

Created and maintained by Maravilla Labs.

Top categories

Loading Svelte Themes