Docs Menu

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.1
toml
[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:zlib
toml
[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.1
toml
[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@v2
toml
[dependencies]
privatelib = { git = "https://github.com/myorg/privatelib.git", tag = "v2.0.0" }
components = { path = "../local-components" }