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_callback2
nghttp2_data_source_read_length_callback
=>nghttp2_data_source_read_length_callback2
nghttp2_pack_extension_callback
=>nghttp2_pack_extension_callback2
nghttp2_recv_callback
=>nghttp2_recv_callback2
nghttp2_select_padding_callback
=>nghttp2_select_padding_callback2
nghttp2_send_callback
=>nghttp2_send_callback2
Structs:
nghttp2_data_provider
=>nghttp2_data_provider2
Functions:
nghttp2_hd_deflate_hd
=>nghttp2_hd_deflate_hd2
nghttp2_hd_deflate_hd_vec
=>nghttp2_hd_deflate_hd_vec2
nghttp2_hd_inflate_hd2
=>nghttp2_hd_inflate_hd3
nghttp2_pack_settings_payload
=>nghttp2_pack_settings_payload2
nghttp2_session_callbacks_set_data_source_read_length_callback
=>nghttp2_session_callbacks_set_data_source_read_length_callback2
nghttp2_session_callbacks_set_pack_extension_callback
=>nghttp2_session_callbacks_set_pack_extension_callback2
nghttp2_session_callbacks_set_recv_callback
=>nghttp2_session_callbacks_set_recv_callback2
nghttp2_session_callbacks_set_select_padding_callback
=>nghttp2_session_callbacks_set_select_padding_callback2
nghttp2_session_callbacks_set_send_callback
=>nghttp2_session_callbacks_set_send_callback2
nghttp2_session_mem_recv
=>nghttp2_session_mem_recv2
nghttp2_session_mem_send
=>nghttp2_session_mem_send2
nghttp2_submit_data
=>nghttp2_submit_data2
nghttp2_submit_request
=>nghttp2_submit_request2
nghttp2_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.