In the previous sections, we built several packages on our computer that were stored in the local cache, typically under ~/.conan/data. Now, you might want to upload them to a Conan server for later use on another machine, project, or for sharing purposes.
Conan packages can be uploaded to different remotes previously configured with a name and a URL. The remotes are just servers used as binary repositories that store packages by reference.
There are several possibilities when uploading packages to a server:
For private development:
- Artifactory Community Edition for C/C++: Artifactory Community Edition (CE) for C/C++ is a completely free Artifactory server that implements both Conan and generic repositories. It is the recommended server for companies and teams wanting to host their own private repository. It has a web UI, advanced authentication and permissions, very good performance and scalability, a REST API, and can host generic artifacts (tarballs, zips, etc). Check Artifactory Community Edition for C/C++ for more information.
- Artifactory Pro: Artifactory is the binary repository manager for all major packaging formats. It is the recommended remote type for enterprise and professional package management. Check the Artifactory documentation for more information. For a comparison between Artifactory editions, check the Artifactory Comparison Matrix.
- Conan server: Simple, free and open source, MIT licensed server that comes bundled with the Conan client. Check Running conan_server for more information.
- Artifactory Cloud-hosted instance: Artifactory Cloud, where JFrog manages, maintains and scales the infrastructure and provides automated server backups with free updates and guaranteed uptime. It’s offered with a free tier designed for individual with reduced usage. Check Uploading to Artifactory Cloud Instance for more information.
ConanCenter (https://conan.io/center) is the main official repository for open source Conan packages. It is configured as the default remote in the Conan client, but if you want to add it manually:
$ conan remote add conan-center https://center.conan.io
There are 2 different types of packages right now in ConanCenter:
- Packages with full reference: Packages like pkg/version@user/channel. These packages binaries were created by users in their own Bintray repositories, and included here. This flow of contributing packages to ConanCenter is deprecated now. These packages are not recommended and should be considered as legacy.
- Packages without “user/channel”: Can be used directly as pkg/version: These packages are created automatically from the central Github repository conan-center-index, with an automated build service: C3I (ConanCenter Continuous Integration). These packages are the recommended ones to use from ConanCenter.
To contribute packages to ConanCenter, read the conan-center guide for more information.