Dependency Management
Ion natively understands five different package resolution backends, letting you pull packages from anywhere in the C++ ecosystem.
Ion Registry (Default)
The standard registry provides lightning-fast resolution and semantic versioning support.
bash
ion add fmt@10.2.1toml
[dependencies]
fmt = "10.2.1"ConanCenter
You can fetch packages directly from ConanCenter. Note: You do not need the Conan Python CLI installed to use this feature.
bash
ion add conan:spdlog/1.13.0@toml
[dependencies]
logging = { conan = "spdlog/1.13.0@" }Conan packages use the name/version@user/channel format.
vcpkg
Ion can also crawl the public vcpkg port index and resolve CMake targets.
bash
ion add vcpkg:zlibtoml
[dependencies]
zlib = { vcpkg = "zlib" }GitHub Releases
For libraries that just provide CMake files over a Git repository or release archive.
bash
ion add github:fmtlib/fmt@10.2.1toml
[dependencies]
fmtlib = { github = "fmtlib/fmt", version = "10.2.1" }Git / Local Path
Useful for local monorepos or internal private libraries hosted on Git.
bash
ion add git:https://github.com/myorg/privatelib.git@v2toml
[dependencies]
privatelib = { git = "https://github.com/myorg/privatelib.git", tag = "v2.0.0" }
components = { path = "../local-components" }