Zyn is a cross-platform build system for C and C++ projects, designed for simplicity, high performance, and powerful tooling. It manages compilation, dependency handling, linting, static analysis, and profiling in a unified way.
Maintained by Zyntraxis Corp, founded by Armen Baghdasaryan.
Zyn is distributed under the Zyntraxis License. See LICENSE for full terms.
- β Linux (Ubuntu/Debian-based systems)
Download .deb package
url: https://github.com/zyntraxis/zyn/releases/tag/v2.0.0
sudo dpkg -i zyn_2.0.0.deb- π Project scaffolding for C/C++
- π¦ Git and local dependency management
- π Automatic dependency resolution
- π Version locking with hash verification
- β‘ Parallel dependency installation
- π οΈ Multiple build configurations (debug/release)
zyn new my_projectcd my_projectzyn install https://github.com/fmtlib/[email protected]zyn run --release| Command | Description |
|---|---|
new <name> |
Create new project |
install [url]/[url]@tag |
Install dependencies |
add <path> |
Add local dependency |
run [--debug --release] |
Build and execute |
update |
Update dependencies |
clean |
Remove build artifacts |
Generated project layout:
project/
βββ .zyn/
β βββ deps/ # Downloaded dependencies
β βββ build/ # Dependency build outputs
β βββ lock/ # Version lock files
βββ src/ # Source files
βββ include/ # Headers
βββ zyn.toml # Project configuration
Example configuration:
[project]
name = "my_app"
version = "1.0.0"
language = "cpp"
standard = "c++20"
compiler = "clang++"
[settings.profiles.--release]
flags = [
"-w -O3 -ffast-math -finline-functions -funroll-loops -fomit-frame-pointer -march=native -flto -DNDEBUG -fstrict-aliasing -fmerge-all-constants",
]
[settings.profiles.--debug]
flags = [
"-g -O0 -DDEBUG -fno-inline -fno-omit-frame-pointer -fsanitize=address -fsanitize=undefined",
]
[settings.profiles.custom_profile]
flags = [
"-g -O1",
]
[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/build"]
libraries = ["pthread", "dl"][dependencies]
library = { git = "https://github.com/user/repo.git", tag = "v1.2.3" }[dependencies]
mylib = { path = "../local/path" }Version 2.3.0 introduces powerful new functionality: automatic generation of project configurations for popular IDEs. This greatly improves development workflow and makes it seamless to integrate Zyn-based C++ projects into:
- Visual Studio Code
- CLion
- QtCreator
zyn ide --clion
zyn ide --qtcreator
Each command creates the appropriate configuration files in a dedicated folder for your chosen IDE.
zyn ide --vscode
Creates the .vscode/ directory with:
c_cpp_properties.jsonβ IntelliSense configuration and include pathstasks.jsonβ build tasks usingzyn run --releaselaunch.jsonβ debugging configuration using GDB Fully integrates with Visual Studio Code out of the box.
zyn ide --clion
Creates .clion/CMakeLists.txt
This allows CLion to open and work with your Zyn project immediately.
zyn ide --qtcreator
Creates .qtcreator/ZynProject.pro
Supports smooth integration with QtCreator without manual setup.
-
Reads your zyn.toml for:
-
Project name
-
Language (c or cpp)
-
Compiler path
-
Language standard (c11, c++17, etc.)
-
Include directories
-
Automatically populates all config files with accurate, project-specific data.
zyn ide --vscode
# Generates full VSCode config in .vscode/
zyn ide --clion
# Generates CMakeLists.txt in .clion/
zyn ide --qtcreator
# Generates Qt project file in .qtcreator/
Zyn automatically:
- Detects header directories (
include/,Include/) - Generates appropriate compiler flags
- Supports CMake-based dependencies
- Maintains version locks in
.zyn/lock/
- Commit
zyn.tomland.zyn/lock/to version control - Use semantic versioning for tags
- Prefer tagged releases over branches
- Run
zyn updateperiodicallyroduct on the homepage. Animated images will only play on hover. - Run
zyn updateperiodically
| Feature | β Zyn | βοΈ Traditional Tools (CMake, Conan, etc.) |
|---|---|---|
| Zero config to get started | β
One-line setup (zyn install ...) |
β Requires multiple files/configs |
| Dependency fetching | β Git-based, no registries needed | |
| Dependency building | β Auto-detects & builds (CMake/Make) | |
| Cross-platform by default | β Yes | |
| IDE integration | β Yes | β Mature, supported by many tools |
| CI/CD ready | π Planned | β Well-supported |
| Fine-grained control | β Minimalist by design | β Full control over every step |
| Custom toolchain support | π Planned | β Fully supported |
| Binary caching | β Yes | β Via Conan/Nix/etc. |
| Ease of use | β Extremely simple |