https://github.com/mcandre/lair
a lightweight build system
https://github.com/mcandre/lair
Last synced: 9 months ago
JSON representation
a lightweight build system
- Host: GitHub
- URL: https://github.com/mcandre/lair
- Owner: mcandre
- License: other
- Created: 2025-09-16T20:25:19.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-09-16T23:27:20.000Z (9 months ago)
- Last Synced: 2025-09-16T23:54:16.331Z (9 months ago)
- Language: Raku
- Size: 10.7 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# lair: a lightweight build system
# EXAMPLE
```console
$ cd example
$ ./install
$ ./lair
Hello, World!
```
See the [example](example) project for more detail.
# ABOUT
lair provides conventions for automating common computer tasks.
# REQUIREMENTS
* [Raku](https://raku.org/) 2025.06.1+
## Recommended
* a UNIX-like environment, e.g. [WSL](https://learn.microsoft.com/en-us/windows/wsl/)
# LICENSE
FreeBSD
# MAJOR FEATURES
## Composability
Historically, many build systems rely on bespoke shell scripts, with all the hazards inherent in shell languages.
In contrast, lair uses the predictable [Proc](https://docs.raku.org/type/Proc) API. This enables a safe, expressive domain specific language to maintain build systems of any complexity.
## Focus
lair is quiet by default, presenting only the logs of your commands. This reduces log noise, saving time and cloud costs.
## Portability
We don't believe in vendor locking for software development tools.
lair runs on a wide variety of platforms, including macOS, Linux, other UNIX kin, and Windows. This helps to promote a higher degree of portability for your applications.
lair is operating system agnostic, programming language agnostic, and build system agnostic. In fact, we recommend delegating many tasks from lair to project-specific build systems!
## Speed
lair is designed for low overhead, so that the bulk of the CPU time is reserved for executing your build commands. Spend the extra time developing your projects, or just grabbing a cup of coffee.
## Flexibility
Extend your lairs to fit your project needs. Execute tasks in [parallel](https://docs.raku.org/language/concurrency). Design your tasks like make `.PHONY:` by default. The sky's the limit!
🦋🦋🦋