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.
- Bintray: Bintray is a cloud platform that gives you full control over how you publish, store, promote, and distribute software. You can create binary repositories in Bintray to share Conan packages or even create an organization. It is free for open source packages, and the recommended server to distribute to the C and C++ communities. Check Using Bintray for more information.
Conan-center (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://conan.bintray.com
There are 2 different types of packages right now in Conan-center:
- 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 Conan-center 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 (Conan-Center Continuous Integration). These packages are the recommended ones to use from ConanCenter.
To contribute packages to Conan-center, read the conan-center guide for more information.
Bintray Community Repositories¶
There are a number of popular community repositories that may be of interest for Conan users for retrieving open source packages. These repositories are not affiliated with the Conan team.
bincrafters : https://bintray.com/bincrafters/public-conan
The Bincrafters team builds binary software packages for the OSS community. This repository contains a wide and growing variety of Conan packages from contributors.
Use the following command to add this remote to Conan:$ conan remote add bincrafters https://api.bintray.com/conan/bincrafters/public-conan
The conan community repository is deprecated and no longer maintained. Packages in this repository have been moved or are in the process of being added to conan-center-index and served in ConanCenter.
If you are working in a team, you probably want to use the same remotes everywhere: developer machines, CI. The
conan config install
command can automatically define the remotes in a Conan client, as well as other resources as profiles. Have a look at the
conan config install command.