We have released nghttp2 v1.60.0.
lib
RFC 7540 priorities (aka stream dependencies) APIs have been deprecated. They work just like before, but in the future release after the end of 2024, the functionality is removed, and the deprecated APIs start behaving differently. See the API documentation for details. RFC 7540 priorities have been deprecated by RFC 9113. Consider migrating RFC 9218 extensible prioritization scheme.
The APIs that use ssize_t, including structs and callback functions,
have been deprecated. New APIs that use nghttp2_ssize are
introduced as a replacement. The usage of ssize_t is problematic
for several reasons. Some platforms do not define ssize_t. The
minimum value of ssize_t that POSIX requires is -1 which makes
nghttp2 error code out of range. nghttp2_ssize is an alias of
ptrdiff_t that is in C standard and covers our error code range.
New code should use new nghttp2_ssize APIs. The existing
applications should consider migrating to new APIs.
The deprecated ssize_t APIs continue to work for backward
compatibility.
Here is the summary of the deprecated APIs and their replacements:
Callback functions:
nghttp2_data_source_read_callback=>nghttp2_data_source_read_callback2nghttp2_data_source_read_length_callback=>nghttp2_data_source_read_length_callback2nghttp2_pack_extension_callback=>nghttp2_pack_extension_callback2nghttp2_recv_callback=>nghttp2_recv_callback2nghttp2_select_padding_callback=>nghttp2_select_padding_callback2nghttp2_send_callback=>nghttp2_send_callback2
Structs:
nghttp2_data_provider=>nghttp2_data_provider2
Functions:
nghttp2_hd_deflate_hd=>nghttp2_hd_deflate_hd2nghttp2_hd_deflate_hd_vec=>nghttp2_hd_deflate_hd_vec2nghttp2_hd_inflate_hd2=>nghttp2_hd_inflate_hd3nghttp2_pack_settings_payload=>nghttp2_pack_settings_payload2nghttp2_session_callbacks_set_data_source_read_length_callback=>nghttp2_session_callbacks_set_data_source_read_length_callback2nghttp2_session_callbacks_set_pack_extension_callback=>nghttp2_session_callbacks_set_pack_extension_callback2nghttp2_session_callbacks_set_recv_callback=>nghttp2_session_callbacks_set_recv_callback2nghttp2_session_callbacks_set_select_padding_callback=>nghttp2_session_callbacks_set_select_padding_callback2nghttp2_session_callbacks_set_send_callback=>nghttp2_session_callbacks_set_send_callback2nghttp2_session_mem_recv=>nghttp2_session_mem_recv2nghttp2_session_mem_send=>nghttp2_session_mem_send2nghttp2_submit_data=>nghttp2_submit_data2nghttp2_submit_request=>nghttp2_submit_request2nghttp2_submit_response=>nghttp2_submit_response2
For those applications that do not want to see ssize_t in nghttp2.h
header file at all, define NGHTTP2_NO_SSIZE_T macro before including
nghttp2.h. It hides all ssize_t APIs.
build
cmake build and install trees are now fixed.
The following dependencies have been updated:
- ngtcp2
- nghttp3
CUnit has been replaced with ngtcp2/munit. munit is pulled via git submodule.
The flags to build applications with libbrotli have been added.
third-party
llhttp has been updated.
mruby is updated to v3.3.0.
h2load
--sni option has been added.
src
The certificate compression support with boringssl (or aws-lc) and libbrotli has been added.