Skip to content

CDSoft/luax

Repository files navigation

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 Nina 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 20+ 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 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.

Tagref : a cross-reference validator (LuaX port of the original Rust tool) that checks [tag:] / [ref:] annotations in source comments, suitable for CI pipelines managed with Bang.

About

Moved to Codeberg, this repo is just a (temporary) mirror -- luax is a Lua interpreter and REPL based on Lua 5.4, augmented with some useful packages. It is also a "compiler" that produces standalone executables from Lua scripts.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

 
 
 

Contributors

No contributors

Languages