Qpid Proton 0.40.0 Release Notes
Proton is a high-performance, lightweight messaging library. More
about Qpid Proton.
For more information about this release, including download links and
documentation, see the release overview.
New features and improvements
- PROTON-2594 - Use of HSM for crypto opterations with the private key of a TLS certificate
- PROTON-2724 - Cannot disable building binaries in c/tools
- PROTON-2751 - Reduce use of pn_buffer_t when not needed
- PROTON-2752 - Use pn_string_t/pn_bytes_t instead of raw char*
- PROTON-2753 - Split util.h to separate the C++ safe parts out of the C99 but not C++ parts
- PROTON-2755 - [Python] Make python code and binding work with python 3.12
- PROTON-2756 - [Python] There is no way to run python tests except by building a virtual environment
- PROTON-2772 - [c] Add parameter safety annotations for printf format strings
- PROTON-2773 - [c] Add various compiler diagnostic helper macros
- PROTON-2774 - Support composite CMake builds
- PROTON-2790 - Improve session flow control
- PROTON-2791 - Add MSG_MORE performance boost to raw connections
- PROTON-2813 - [Python] Make the python code pep8 clean
- PROTON-2824 - C example broker doesn't respond well if the client tries to use transactions
- PROTON-2838 - Remove all operations using the pn_data_t structure from the frame decode path
- PROTON-2844 - Modernize python code
- PROTON-2848 - [python] Add py.typed marker to officially support typing and be compliant with PEP 561
- PROTON-2854 - Make it easier to build with AFL fuzzer manually
- PROTON-2856 - Provide TLS support for intermediate CA certificates as trust anchors in OpenSSL
- PROTON-2861 - Use C++ raw string now that we can
Bugs fixed
- PROTON-2322 - Fix and remove ignores in flake8 configuration
- PROTON-2714 - logger.c:204:41: error: format ‘%x’ expects argument of type ‘unsigned int’, but argument 4 has type ‘size_t’ {aka ‘long unsigned int’} [-Werror=format=]
- PROTON-2742 - The python binding installation instructions in python/PACKAGING.txt are wrong
- PROTON-2743 - Logging raw frames only log outgoing frames not incoming frames
- PROTON-2746 - pn_value_dump can access uninitialised memory
- PROTON-2748 - Raw connections do not always complete close operations
- PROTON-2754 - Python example broker supports ANONYMOUS-RELAY but doesn't offer the capability
- PROTON-2759 - [python docs] auto_accept doc in TransactionalClientHandler is incorrect
- PROTON-2760 - Ruby Some unit tests fail as they use MiniTest which is no longer an alias for Minitest
- PROTON-2761 - The ruby unittests give deprecation warnings
- PROTON-2762 - [C++, tracing] Binding does not compile with opentracing
- PROTON-2763 - Two final disconnect events possible from a raw connection
- PROTON-2764 - Zombie raw connections
- PROTON-2765 - [go] Go compilation fails with go 1.21
- PROTON-2785 - [Go] Message of certain size fail to be marshalled by amqp module
- PROTON-2786 - Cannot cross-compile proton-c using the
zig c++
compiler
- PROTON-2787 - Compilation failure with
zig cc
(equivalent to clang 16)
- PROTON-2788 - Static build of the Proton TLS library fails when openssl is located outside of default system include directories
- PROTON-2792 - [cpp] Segmentation fault in container::impl::run_timer_jobs
- PROTON-2810 - C++ compile standard needs to be advanced to c++14 or later
- PROTON-2814 - [Python] Python tests incompatible with python 3.12
- PROTON-2816 - The current python pkg build can only build a package with a bundled proton core
- PROTON-2817 - [Python] Allow control of whether python build uses pip inside virtual environments
- PROTON-2818 - Move epoll proctor connection logic to a task thread
- PROTON-2820 - [Ruby] Test failure when using swig 4.2
- PROTON-2822 - Build fails without building the proactor library
- PROTON-2825 - C++ binding treats transaction coordinator termini incorrectly
- PROTON-2831 - Mistaken use of logical-or operator instead of bitwise-or operator
- PROTON-2832 - Use-after free tsan error in epoll.c::post_event
- PROTON-2835 - [Win TLS] Incorrect certificate checking - not checking time validity
- PROTON-2842 - Frame dump for custom descriptors is incorrect
- PROTON-2843 - [Go] Acknowledging a message on a closed receiver results in a segmentation fault
- PROTON-2853 - Undefined behaviour found by fuzzing transfer frame
Tasks
- PROTON-2644 - Update various GH actions versions to resolve deprecation warnings
- PROTON-2860 - [cpp] Remove the unsettled API marker from the C++ reconnect API
Apache Qpid, Messaging built on AMQP; Copyright © 2015
The Apache Software Foundation; Licensed under
the Apache
License, Version 2.0; Apache Qpid, Qpid, Qpid Proton,
Proton, Apache, the Apache feather logo, and the Apache Qpid
project logo are trademarks of The Apache Software
Foundation; All other marks mentioned may be trademarks or
registered trademarks of their respective owners