HN user

zyntraxis

5 karma
Posts2
Comments12
View on HN
[dead] 1 year ago

There’s a force within each of us — subtle yet undeniable — that fuels clarity, focus, and strength. For me, it’s the black tourmaline, a stone that anchors energy and sharpens the mind.

Zyn is no different. It’s not just a build system — it’s a source of unseen energy for your code, a silent catalyst empowering developers to create with flow and precision.

Maybe you’ve heard of Zyn. Maybe you’ve even used it. But what’s happening now is just the surface.

Like the tourmaline holding mysteries beneath its surface, Zyn holds potential that reveals itself only when you’re truly ready to tap into it.

The story is unfolding — quietly, powerfully — and it’s already rewriting the rules of how we build.

You’re part of this story.

Keep watching. The real power is yet to come.

[dead] 1 year ago

We’ve added full IDE project generation support — instantly set up your C++ project in:

Visual Studio Code CLion QtCreator

Just run zyn ide --vscode, --clion, or --qtcreator and start coding. No setup. No config. Just build.

Smarter. Faster. Cleaner. github.com/zyntraxis/zyn

Zyn can integrate with non-Zyn-style projects (like CMake or Make-based ones), but it treats them as opaque third-party dependencies and handles them externally. Here's how it works:

Cloning: When you list a Git-based dependency like https://github.com/user/X in your zyn.toml, Zyn clones it into .zyn/deps.

Build Detection: Zyn looks for known build systems (CMakeLists.txt, Makefile, etc.) in the dependency. If found, Zyn runs the appropriate commands (cmake, make, etc.) to build the project.

Dependency Isolation: Zyn does not parse or resolve the internal dependency graph of project X. If X needs other libraries (Y, Z, etc.), you must also list those manually in your own zyn.toml. This gives you full control and reproducibility.

Header and Library Exposure: After building, Zyn makes the compiled .a/.so/.lib and headers available to your main project automatically by linking them via -I and -L flags.

Example:

Let’s say project X depends on Y and Z, but doesn’t use Zyn itself and just mentions this in a README. You’d do: [dependencies] X = "https://github.com/user/X" Y = "https://github.com/user/Y" Z = "https://github.com/user/Z" Zyn will fetch and build all of them. It doesn’t care that X has no zyn.toml.

[dead] 1 year 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.

You're absolutely right — Conan with a conanfile.txt and minimal CMake can be very concise. And for people already familiar with CMake/Conan, that setup works well. But here's the key difference:

In your CMakeLists.txt, when you write find_package(somelib), that only works if the library is already installed and registered properly in the CMake package registry or via a Conan toolchain. Otherwise, you still have to configure remotes, run conan install, deal with CMake toolchain files, set CMAKE_PREFIX_PATH, etc.

With Zyn, there's no need to install or configure anything manually

Zyn:

Clones the repo

Builds it

Links it to your project

Works cross-platform, without needing the library to be "findable" in the system or Conan cache.

So in short: Zyn handles the fetch/build/link pipeline completely, using just the GitHub URL. No find_package, no system-wide installs, no registry or remotes — which makes it extremely easy for quick experiments, hobby projects, or internal tools.

We're not saying Conan is bad — it's powerful, and necessary for big projects. But Zyn aims to remove all friction for the common case.

You're absolutely right — Conan with a conanfile.txt and minimal CMake can be very concise. And for people already familiar with CMake/Conan, that setup works well.

But here's the key difference:

In your CMakeLists.txt, when you write find_package(somelib), that only works if the library is already installed and registered properly in the CMake package registry or via a Conan toolchain. Otherwise, you still have to configure remotes, run conan install, deal with CMake toolchain files, set CMAKE_PREFIX_PATH, etc.

With Zyn, there's no need to install or configure anything manually

Zyn:

Clones the repo

Builds it

Links it to your project

Works cross-platform, without needing the library to be "findable" in the system or Conan cache.

So in short: Zyn handles the fetch/build/link pipeline completely, using just the GitHub URL. No find_package, no system-wide installs, no registry or remotes — which makes it extremely easy for quick experiments, hobby projects, or internal tools.

We're not saying Conan is bad — it's powerful, and necessary for big projects. But Zyn aims to remove all friction for the common case.

Great question — and I really appreciate the thoughtful framing.

Yes, Zyn started from the simple frustration of needing 50+ lines of boilerplate just to try a GitHub library. My answer was: for most projects, that level of complexity isn't necessary. So I built a tool that does the common 80% use case in 1% of the effort. One line of config, and you're ready to go.

When is CMake or Conan legitimately appropriate? Absolutely — when you're working with complex multi-platform targets, ABI constraints, custom toolchains, or need deep CI/CD and IDE integration. Those tools are mature and powerful for a reason.

What do you lose by using Zyn today? Mainly fine-grained control: custom build steps, cross-compilation, binary caching, platform-specific configs — Zyn doesn't try to solve all that (yet). It's intentionally minimal.

But here's the key part: We do plan to grow in that direction. Future versions of Zyn will support IDE project generation, CI/CD workflows, cross-compilation setups, and even plugin extensibility. The goal is to keep the simplicity, while expanding capability.

For now, Zyn is a productivity-first tool — and I think there's room for that in the C/C++ ecosystem.

Hey everyone, I’ve spent the last year building Zyn — a zero-boilerplate build system for C/C++ projects.

It started with a simple frustration: why do I need 50 lines of CMake or Conan config just to use a GitHub library?

With Zyn you just need to put a reference to the library in config.zyn in the [dependencies] section and boom — Zyn clones the repo, builds it, and links it to your project. No CMakeLists.txt, no conanfile.py, no manual target_include_directories, nothing.

Key Features Automatic project init (zyn init debug)

Works out of the box — no toolchain hell

Future plans: IDE project generation, CI/CD integration, Windows/macOS support

Why Zyn? Because build systems shouldn’t get in your way. You shouldn’t need to become a CMake black belt just to compile your code. Zyn is made for people who want to start fast, stay clean, and ship.

I’d love your feedback. Especially from those who’ve worked with CMake, Meson, Bazel, or Conan in real projects. Tell me what sucks, what’s missing, or if the core idea makes sense at all.

GitHub: https://github.com/zyntraxis-corp/zyn

Thanks for reading