| Crates.io | turtle-build |
| lib.rs | turtle-build |
| version | 0.4.9 |
| created_at | 2022-01-10 07:09:33.894547+00 |
| updated_at | 2025-09-20 21:50:15.841754+00 |
| description | Ninja-compatible build system for high-level programming languages |
| homepage | |
| repository | https://github.com/raviqqe/turtle |
| max_upload_size | |
| id | 511251 |
| size | 190,322 |
Ninja-compatible build system for high-level programming languages written in Rust
unsafe) and fast implementation of the Ninja build system in RustTurtle is originally written for the Pen programming language. Therefore, we support only dynamic dependencies but not C/C++ header dependencies currently. Your contribution is welcome! 😄
cargo install turtle-build
turtle
For more information, see turtle --help.
srcdep variables defined in build directives to make them understandable to end-users.--log-prefix option
--log-prefix my-build-system for a log of my-build-system: build failed.)--quiet option
Turtle aims to support full syntax of the Ninja build files. It also supports basic command line arguments but is not going to implement all the original options (e.g. -t option.)
build statement
phony rulerule statementdefault statementinclude statementsubninja statementpool statementin and out special variable-f custom build file option-j job limit option-k keep-going option-C change-directory optionbuilddir special variabledepfile optiondeps optionSomething different from the traditional build systems and notable in Turtle is that it solves parallel builds similar to parallel graph reduction naturally, where you modify graph structures in parallel and reduce it into a solution, thanks to an ecosystem of futures and stackless coroutines in Rust.
Here is how parallel builds work in Turtle:
Currently, Turtle uses a topological sort algorithm only to detect dependency cycles but not for scheduling of build jobs.
Turtle is powered by the following neat projects and others!
Dual-licensed under MIT and Apache 2.0.