PROTON-2816/PROTON-2817: Support building python extension with unbundled proton

There are 3 cases:
* Bundled proton library - this should be the default and is what you
  should use with pip etc.
* System proton library - this is what you should use in a distro
  package.
* Use the in tree library built earlier in the build process - this is
  what you usually want for developer debugging, and should be the
  version actually tested by the in tree tests.

This change also add control of the ability to package and test in
isolated virtual python environments. Using these is the default, but
under some circumstances you do not want the build process to construct
a virtual environment by pulling packages from the internet. So we now
have an option to turn this behaviour off and rely on the hosts python
environment.
5 files changed
tree: 23eb1a6ee0965ee7d941bb5944a79bff7c170eea
  1. .github/
  2. azure-pipelines/
  3. c/
  4. ci/
  5. cpp/
  6. docs/
  7. go/
  8. misc/
  9. python/
  10. ruby/
  11. scripts/
  12. tests/
  13. tools/
  14. .appveyor.yml
  15. .asf.yaml
  16. .gitattributes
  17. .gitignore
  18. .mailmap
  19. .reviewboardrc
  20. CMakeLists.txt
  21. go.mod
  22. INSTALL.md
  23. LICENSE.txt
  24. NOTICE.txt
  25. README.md
  26. VERSION.txt
README.md

Qpid Proton - AMQP messaging toolkit

Qpid Proton is a high-performance, lightweight messaging library. It can be used in the widest range of messaging applications, including brokers, client libraries, routers, bridges, proxies, and more. Proton makes it trivial to integrate with the AMQP 1.0 ecosystem from any platform, environment, or language.

Features

  • A flexible and capable reactive messaging API
  • Full control of AMQP 1.0 protocol semantics
  • Portable C implementation with bindings to popular languages
  • Peer-to-peer and brokered messaging
  • Secure communication via SSL/TLS and SASL

Universal - Proton is designed to scale both up and down. Equally suitable for simple clients or high-powered servers, it can be deployed in simple peer-to-peer configurations or as part of a global federated messaging network.

Embeddable - Proton is carefully written to be portable and cross platform. It has minimal dependencies, and it is architected to be usable with any threading model, as well as with non-threaded applications. These features make it uniquely suited for embedding messaging capabilities into existing software.

Standard - Built around the AMQP 1.0 messaging standard, Proton is not only ideal for building out your own messaging applications but also for connecting them to the broader ecosystem of AMQP 1.0-based messaging applications.

Please see https://qpid.apache.org/proton for more information.

Getting Started

See the included INSTALL.md file for build and install instructions and the developers.md file for information on how to modify and test the library code itself.