Hacker News new | ask | show | jobs
by zyntraxis 394 days ago
When you want full control over your C++ project without fighting with CMake boilerplate or inconsistent dependency setups, meet Zyn — a powerful tool designed for modern C++ workflows with Git-level dependency tracking, semantic versioning, and a clean project structure.

Quick Start Create your project in seconds: zyn new my_project cd my_project

Add dependencies directly from Git: zyn install https://github.com/fmtlib/fmt.git@9.1.0

Run it fast, run it clean: zyn run --release

Why Zyn? Unlike legacy build systems, Zyn keeps things predictable, clean, and modular:

Git-based dependencies with version locking

Semantic versioning support

Clean project layout with predictable src/, include/, and .zyn/ folders

C++ standards support out of the box

Automatic compiler flag generation

Commands

Command What it does zyn new <name> Create a new project zyn install <url> Install dependency from Git zyn add <path> Add a local dependency zyn run [--debug/--release] Run app zyn update Update all dependencies zyn clean Wipe build artifacts

Project Structure Zyn generates a structure that makes sense:

project/ ├── .zyn/ │ ├── deps/ # Git dependencies │ ├── build/ # Compiled outputs │ └── lock/ # Version locks ├── src/ # C++ source files ├── include/ # C++ headers └── zyn.toml # Central project config

Configuration Example ` [project] name = "my_app" version = "1.0.0" language = "cpp" standard = "c++20" compiler = "clang++"

[directories] sources = "src" include = "include" build = ".zyn/build"

[dependencies] fmt = { git = "https://github.com/fmtlib/fmt.git", tag = "9.1.0" } boost = { path = "/opt/boost" }

[libraries] lib_dirs = ["/usr/local/lib"] libraries = ["pthread", "dl"] `

Dependency Management Add a Git repo directly:

[dependencies] json = { git = "https://github.com/nlohmann/json.git", tag = "v3.11.2" }

Or use a local path: [dependencies] mylib = { path = "../mylib" }

Zyn will lock versions, build automatically, and ensure reproducibility.

Best Practices

Always commit zyn.toml and .zyn/lock/ Use tagged releases instead of branches Run zyn update regularly to keep deps fresh Prefer minimal, focused dependencies — Zyn makes it easy Conclusion Zyn is what happens when you combine modern package management with low-level power. If you're serious about C++, and want a real workflow, try Zyn.

Forget clutter. Forget hacks. Just build.

Zyn — When Control Begins.