Skip to main content
JFrog | Conan 2.0 Logo

Conan

Decentralized, open-source (MIT), C/C++ package manager.

Conan is a package manager for C and C++ developers:

  • It is fully decentralized. Users can host their packages on their servers, privately. Integrates with Artifactory and Bintray.
  • Portable. Works across all platforms, including Linux, OSX, Windows (with native and first-class support, WSL, MinGW), Solaris, FreeBSD, embedded and cross-compiling, docker, WSL
  • Manage binaries. It can create, upload and download binaries for any configuration and platform, even cross-compiling, saving lots of time in development and continuous integration. The binary compatibility can be configured and customized. Manage all your artifacts in the same way on all platforms.
  • Integrates with any build system, including any proprietary and custom one. Provides tested support for major build systems (CMake, MSBuild, Makefiles, Meson, etc).
  • Extensible: Its Python-based recipes, together with extension points allow for great power and flexibility.
  • Large and active community, especially in GitHub (https://github.com/conan-io/conan) and Slack (https://cppalliance.org/slack/ #conan channel). This community also creates and maintains packages in ConanCenter and Bincrafters repositories in Bintray.
  • Stable. Used in production by many companies, since 1.0 there is a commitment not to break package recipes and documented behavior.

This is the developer/maintainer documentation. For user documentation, go to https://docs.conan.io

Setup

You can run Conan from source in Windows, MacOS, and Linux:

  • Install pip following pip docs.

  • Clone Conan repository:

    $ git clone https://github.com/conan-io/conan.git conan-io
    

    Note: repository directory name matters, some directories are known to be problematic to run tests (e.g. conan). conan-io directory name was tested and guaranteed to be working.

  • Install in editable mode

    $ cd conan-io && sudo pip install -e .
    

    If you are in Windows, using sudo is not required. Some Linux distros won't allow you to put Python packages in editable mode in the root Python installation, and creating a virtual environment venv first, is mandatory.

  • You are ready, try to run Conan:

    $ conan --help
    
    Consumer commands
      install    Installs the requirements specified in a recipe (conanfile.py or conanfile.txt).
      ...
    
      Conan commands. Type "conan <command> -h" for help
    

Contributing to the project

Feedback and contribution are always welcome in this project. Please read our contributing guide. Also, if you plan to contribute, please add some testing for your changes. You can read the Conan tests guidelines section for some advice on how to write tests for Conan.

Running the tests

Install Python requirements

$ python -m pip install -r conans/requirements.txt
$ python -m pip install -r conans/requirements_server.txt
$ python -m pip install -r conans/requirements_dev.txt

If you are not on Windows and you are not using a Python virtual environment, you will need to run these commands using sudo.

Before you can run the tests, you need to set a few environment variables first.

$ export PYTHONPATH=$PYTHONPATH:$(pwd)

On Windows it would be (while being in the Conan root directory):

$ set PYTHONPATH=.

Conan test suite defines and configures some required tools (CMake, Ninja, etc) in the conftest.py and allows to define a custom conftest_user.py. Some specific versions, like cmake>=3.15 are necessary.

You can run the tests like this:

$ python -m pytest .

A few minutes later it should print OK:

............................................................................................
----------------------------------------------------------------------
Ran 146 tests in 50.993s

OK

To run specific tests, you can specify the test name too, something like:

$ python -m pytest test/functional/command/export_test.py::TestRevisionModeSCM::test_revision_mode_scm -s

The -s argument can be useful to see some output that otherwise is captured by pytest.

Also, you can run tests against an instance of Artifactory. Those tests should add the attribute artifactory_ready.

$ python -m pytest . -m artifactory_ready

Some environment variables have to be defined to run them. For example, for an Artifactory instance that is running on the localhost with default user and password configured, the variables could take the values:

$ export CONAN_TEST_WITH_ARTIFACTORY=1
$ export ARTIFACTORY_DEFAULT_URL=http://localhost:8081/artifactory
$ export ARTIFACTORY_DEFAULT_USER=admin
$ export ARTIFACTORY_DEFAULT_PASSWORD=password

ARTIFACTORY_DEFAULT_URL is the base URL for the Artifactory repo, not one for a specific repository. Running the tests with a real Artifactory instance will create repos on the fly so please use a separate server for testing purposes.

License

MIT LICENSE

Metadata

Release files for conan 2.34.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for conan 2.34.0
File Size Uploaded Provenance Actions
conan-2.34.0.tar.gz 613.0 kB Without provenance Details for conan-2.34.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for conan 2.34.0
File Interpreter ABI Platform Actions
conan-2.34.0-py3-none-any.whl Python 3 none any Details for conan-2.34.0-py3-none-any.whl

Total release size: 1.4 MB

Release files / conan-2.34.0.tar.gz

Download URL conan-2.34.0.tar.gz
Size 613.0 kB
Tags Source
SHA-256 checksum
How to use checksums
9c65681300550638be20a25908673b8683533e8fc2dbbdac38ea0d9642a8124d
BLAKE2b-256 checksum
How to use checksums
63d5d7d5bd89e5870923be85940bf63885fc0b80d2c347ea236325003488a8e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.17

Release files / conan-2.34.0-py3-none-any.whl

Download URL conan-2.34.0-py3-none-any.whl
Size 750.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4e268bb9ad38614141c7274a769c7226122e3660e4d5eb545a0c7f7170b53272
BLAKE2b-256 checksum
How to use checksums
e012c1e94f9c47eda7276a4d6c21e757e46a8c77f64e96f652f7f7849a973cf3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.17

Security for conan 2.34.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2.34.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page