forgezero-cli/ForgeZero
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
ForgeZero ========= ForgeZero is a zero-overhead build tool for assembly, C, C++, Objective-C, and Gloria. It wraps NASM, GAS, FASM, GCC, Clang, Zig, and LD behind a single command-line interface, and provides fast, allocation-free builds without Makefiles or configuration. Quick Start ----------- * Report a bug: https://github.com/forgezero-cli/ForgeZero/issues * Get the latest release: https://github.com/forgezero-cli/ForgeZero * Build ForgeZero: See INSTALL * Build your project with fz: See QUICKSTART Essential Documentation ------------------------ All users should be familiar with: * Build modes & languages: LANGUAGES * CLI reference: CLI-REFERENCE * Configuration file: TOML_CONFIG * License: See LICENSE Full documentation index: INDEX Who Are You? ============ Find your role below: * New User - Building a project with fz for the first time * Assembly Developer - Writing NASM, GAS, or FASM sources * C / C++ / Objective-C Developer - Building with GCC, Clang, or Zig * Gloria Developer - Writing and compiling Gloria sources * Security Auditor - SBOM generation and SAST review * Release Engineer - Reproducible and verifiable builds * Cross-Compilation / Embedded Engineer - Targeting non-host platforms * WebAssembly Developer - Building WASM targets * Contributor - Extending or fixing ForgeZero itself For Specific Users =================== New User -------- Start here: * Installation: INSTALL * Quick Start & Usage: QUICKSTART * Exit Codes & Troubleshooting: ERROR_HANDLING Assembly Developer ------------------- * Build Modes & Extensions: LANGUAGES * Assembler Backends: SPECS * CLI Build Reference: CLI-REFERENCE C / C++ / Objective-C Developer --------------------------------- * Language Guide: LANGUAGES * Build Modes & Extensions: LANGUAGES * CLI Build Reference, Profiles & Linking: CLI-REFERENCE * Zig Backend: SPECS Gloria Developer ------------------ * Gloria Language: LANGUAGES * Build Modes & Extensions: LANGUAGES Security Auditor ------------------ * Supply Chain Security (SBOM + SAST): SECURITY * Aegis Security Core: INTERNALS * Virtual Filesystem Layer (Aegis): INTERNALS Release Engineer ------------------ * Reproducible Builds, Verify, Bench: PERFORMANCE * Supply Chain Security: SECURITY Cross-Compilation / Embedded Engineer ---------------------------------------- * Cross-Compilation Targets: WORKFLOW * Configuration File Reference: TOML_CONFIG WebAssembly Developer ------------------------ * WASM & Web Targets: WORKFLOW Contributor ------------- * Project Tools (init, contribute, LSP, update): WORKFLOW * Doctor, Platform Readiness, Testing Standards: INTERNALS * HADES Engine, Contributing, License: INTERNALS * Roadmap: ARCHITECTURE Performance =========== Measured against `nasm -f elf64 && ld` and `make -j4`, via hyperfine (warmup 3, >= 10 runs). Test system: Intel Core i5-10310U (4C/8T, 1.7 GHz base), Arch Linux, NVMe SSD. modules fz make -j4 speedup ------- -------------- ---------------- ------- 20 19.3 +- 1.2 ms 45.4 +- 2.3 ms 2.35x 50 31.1 +- 1.3 ms 85.0 +- 2.1 ms 2.73x 100 57.0 +- 5.3 ms 185.5 +- 7.7 ms 3.25x 150 73.1 +- 4.3 ms 229.3 +- 3.6 ms 3.14x 200 82.2 +- 4.2 ms 291.1 +- 11.2 ms 3.54x 400 223.1 +- 9.8 ms 1105.0 +- 24.1 ms 4.95x Stress test, 5000 C files, AMD Ryzen 7 PRO 4750U (16 threads): ninja -j16 ~28.9 s fz ~597 ms (47.3x; 98% utilization across 16 threads; ~47 MB resident) Full benchmark methodology and reproduction steps: PERFORMANCE Communication and Support ========================== * Issues: https://github.com/forgezero-cli/ForgeZero/issues * Source: https://github.com/forgezero-cli/ForgeZero * Author: alexvoste <https://github.com/alexvoste> * License: GPLv3 - see LICENSE