cdsoft/luax
2
23
Fork
You've already forked luax
0
LuaX is a Lua interpreter and REPL based on Lua 5.5, augmented with some useful packages. It is also a "compiler" that produces standalone executables from Lua scripts. LuaX comes with some useful tools: bang (ninja file generator), ypp (text preprocessor) and lsvg (image generator). https://cdelord.fr/luax
  • C 68.4%
  • Lua 31%
  • Shell 0.6%
Find a file
2026年07月07日 20:44:48 +02:00
.github add donation buttons 2025年03月23日 16:59:45 +01:00
bang x86 Linux targets 2026年07月01日 17:47:36 +02:00
lsvg lsvg: minor bug fix (error messages) 2026年05月15日 17:13:06 +02:00
lua revert to Lua 5.5.0 because of undefined behaviours in Lua 5.5.1 2026年03月20日 20:52:04 +01:00
luax curl: add missing fs import 2026年07月07日 20:44:48 +02:00
tools add lua-tinyyaml 2026年05月31日 14:30:58 +02:00
ypp luax: fix FNV1A endianess 2026年06月14日 12:10:47 +02:00
.editorconfig add a .editorconfig file 2024年01月18日 20:38:12 +01:00
.gitignore LuaX 10.0 now integrates bang, ypp and lsvg 2026年04月15日 22:15:35 +02:00
.gitmodules remove git dependency to build LuaX 2025年04月17日 18:51:17 +02:00
.luarc.json Luasocket added and http renamed as curl.http 2026年04月17日 22:58:25 +02:00
build-bang.lua bin and lib directories removed 2026年05月25日 09:34:46 +02:00
build-lsvg.lua bin and lib directories removed 2026年05月25日 09:34:46 +02:00
build-luax.lua x86 Linux targets 2026年07月01日 17:47:36 +02:00
build-releases.lua release standalone (appimage like) executables 2026年04月29日 10:25:03 +02:00
build-ypp.lua bin and lib directories removed 2026年05月25日 09:34:46 +02:00
build.lua minor build system rework 2026年05月31日 14:30:58 +02:00
LICENSE Initial version (lapp port using Zig as a cross-compiler) 2022年08月01日 00:28:56 +02:00
README.md typo 2026年05月31日 14:30:58 +02:00

Important

Version 10 is a significant rework: Bang, Ypp and Lsvg are now part of the LuaX repository. Binaries are smaller and the build system is faster. LuaSec and OpenSSL have been removed (use curl.http instead).

LuaX-based Development Tools

TL;DR

The LuaX repository now contains some softwares that are closely coupled with LuaX:

LuaX
The LuaX interpreter / compiler itself.
Bang
The LuaX build system that enhances Ninja with some powerful Lua scripting capabilities.
Ypp
A generic text preprocessor used to build the LuaX documentation.
lsvg
An SVG image generator scriptable in LuaX used to generate the LuaX logo.

Installation

git clone https://codeberg.org/cdsoft/luax
cd luax
./build.lua
ninja install # installs to ~/.local/bin and ~/.local/lib

Precompiled binaries for various platforms are also available at https://cdelord.fr/pub, but building from source is recommended.

Support

LuaX is free and open source. Contributions are welcome:

Donate using Liberapay Buy Me a Coffee at ko-fi.com

Feel free to promote LuaX!

Core tools

LuaX
is an extended Lua 5.5 interpreter and compiler. It enriches Lua with 25+ built-in modules (file system, shell, cryptography, compression...) and can produce standalone cross-platform executables. LuaX uses Lua tables as a universal data format, allowing all tools in the ecosystem to share configuration and data without any conversion glue.
Bang (Bang Automates Ninja Generation)
is a Ninja build file generator scriptable in LuaX. It turns readable LuaX build scripts into fast, incremental Ninja build files, with built-in support for Lua, C, C++ compilation, cross-compilation, and common document processors.
Ypp (Yet a PreProcessor)
is a generic text preprocessor driven by LuaX macros. It supports variable expansion, file inclusion, diagram generation (Graphviz, PlantUML, Mermaid, Lsvg...) and Pandoc-based format conversion, and works equally well with Pandoc and Typst documents.
Lsvg
is a LuaX-scriptable SVG image generator. It exposes a pure Lua library covering all major SVG elements and can output SVG, PNG, JPEG or PDF. It is used, for example, to generate the LuaX logo, and integrates naturally with Ypp and Bang.

Other tools in the ecosystem

These tools extend the ecosystem and rely on LuaX as their scripting foundation:

Panda
a Pandoc Lua filter that processes documents at the AST level, adding templating, file inclusion, diagram rendering and dependency tracking. Complements Ypp for Pandoc-specific workflows.
Ldc
a cross-language code generator: reads LuaX data definitions and emits equivalent source code in C, Haskell, Shell, YAML, etc., keeping constants in sync across a polyglot project.
Yreq
a lightweight requirement-tracking plugin for Ypp, providing traceability tags, coverage matrices and hyperlinks within technical documentation.