Yesterday I shipped 1.9.0. Got a solid mix of hate and genuinely useful feedback. Didn't sleep. Took all of it personally. Built 2.0.0 instead.
No point dragging it out — here's everything I promised, shipped right now.
What's new
⚡ BLAKE3 file hashing — 7x faster cache
Dropped SHA256. Switched to BLAKE3 across the board.
| File size | Before | After |
|---|---|---|
| 10 MB | 58 ms | 8.7 ms |
Package verification from the catalog uses BLAKE3 too.
📦 Package manager — fz pm
The big one. Dependency management for C/ASM projects that doesn't make you want to quit programming.
fz pm add <repository>
fz pm remove <package>
fz pm update
fz pm list
fz pm search <query>
fz pm install
fz pm catalog
Dependencies live in .fz.yaml. Removal cleans up empty parent directories automatically. Backed by a community-driven JSON package catalog.
🔌 Shared library support
New flags: -shared, -cc-flag, -ld-flag. Build .so and .dylib targets without wiring things up by hand.
🎯 Cross-compilation
fz -target arm-linux-gnueabihf
fz -target riscv64-linux-gnu
fz -target x86_64-w64-mingw32
ARM, RISC-V, x86_64, i386. Compiler, assembler, and linker are selected automatically for the target triple.
🗂 Static libraries
fz -type static -lib mylib
Builds .a archives from object files via ar.
🧠 LSP support
fz -compile-commands
Generates compile_commands.json for clangd and any compatible LSP client. Autocomplete and go-to-definition, no manual config.
Improvements & fixes
- Parallel builds with
-j N - Linker scripts and text section address:
-T,-Ttext - Fixed object file name collisions (
hello.asmvshello.s) - All
golangci-lintwarnings resolved:errcheck,govet,ineffassign - Context and timeouts for all network and git operations
- Test coverage: utils 84%, linker 60%, assembler 60%, builder 56%
Install
go install github.com/forgezero-cli/ForgeZero/cmd/fz@latest
Links
- Repository: https://github.com/forgezero-cli/ForgeZero
- Package catalog: https://github.com/forgezero-cli/catalog
- Docs: https://github.com/forgezero-cli/ForgeZero#readme
Solo project. All issues and PRs read personally. If something's broken or missing — tell me, I'll probably fix it overnight.
Top comments (0)