nghttp2 1.70.0 rpms released

nghttp2 1.70.0 rpms released and added to all supported platforms.

Major changes:

Require C++23 by @tatsuhiro-t in #2688 Adopt Designated initializers part1 by @tatsuhiro-t in #2689 Adopt Designated initializers part2 by @tatsuhiro-t in #2690 Adopt Designated initializers part3 by @tatsuhiro-t in #2691 tests: Make const values static const by @tatsuhiro-t in #2692 src: Rewrite util::split_str and its variants by @tatsuhiro-t in #2693 src: Adopt std::string::resize_and_overwrite by @tatsuhiro-t in #2694 src: Pass std::chrono::{time_point,duration} by value by @tatsuhiro-t in #2695 Bump mruby to 4.0.0 by @tatsuhiro-t in #2696 src: Fix warning «space between quotes and suffix is deprecated in C++23» by @tatsuhiro-t in #2697 lib, tests: Use C-style comment by @tatsuhiro-t in #2698 src: Avoid std::chrono::high_resolution_clock by @tatsuhiro-t in #2699 src: Add noexcept to user-defined literals by @tatsuhiro-t in #2700 src: Replace std::optional with std::expected by @tatsuhiro-t in #2701 src/util: Adopt std::expected for error handling by @tatsuhiro-t in #2702 get_socket_error: Return errno of getsockopt if it fails by @tatsuhiro-t in #2703 src: Use util::stream_error by @tatsuhiro-t in #2704 src: Get rid of std::stringstream by @tatsuhiro-t in #2705 src: Modernize Header and HeaderRef by @tatsuhiro-t in #2707 src/http2: Adopt std::expected by @tatsuhiro-t in #2708 src/tls: Adopt std::expected by @tatsuhiro-t in #2709 nghttpx: Adopt std::expected for Connection read/write by @tatsuhiro-t in #2710 Nghttpx dconn expected by @tatsuhiro-t in #2711 Nghttpx downstream expected by @tatsuhiro-t in #2712 Nghttpx http2session expected by @tatsuhiro-t in #2713 Nghttpx upstream expected by @tatsuhiro-t in #2714 Nghttpx clienthandler expected by @tatsuhiro-t in #2715 Nghttpx httpdownstreamconnection expected by @tatsuhiro-t in #2716 Nghttpx expected by @tatsuhiro-t in #2717 Nghttpx http2upstream expected by @tatsuhiro-t in #2718 Nghttpx http3upstream expected by @tatsuhiro-t in #2719 Nghttpx mruby expected by @tatsuhiro-t in #2720 Nghttpx quic expected by @tatsuhiro-t in #2721 nghttpx: Adopt std::expected for QUICConnectionHandler by @tatsuhiro-t in #2722 Nghttpx tls expected by @tatsuhiro-t in #2723 nghttpx: Rewrite time_t_from_asn1_time with ASN1_TIME_diff for boringssl by @tatsuhiro-t in #2724 Nghttpx livecheck expected by @tatsuhiro-t in #2725 Nghttpx dns expected by @tatsuhiro-t in #2726 Nghttpx memcached expected by @tatsuhiro-t in #2727 Nghttpx misc expected by @tatsuhiro-t in #2728 Nghttpx worker expected by @tatsuhiro-t in #2729 Nghttpx connhandler expected by @tatsuhiro-t in #2730 nghttpx: Pass WorkerEvent without explicit std::move by @tatsuhiro-t in #2731 nghttpx: Adopt std::expected for worker_process_event_loop by @tatsuhiro-t in #2732 nghttpx: Adopt std::expected for parse_config by @tatsuhiro-t in #2733 Nghttpx config expected by @tatsuhiro-t in #2734 Src fixup by @tatsuhiro-t in #2735 nghttpx: Adopt std::expected for main routines by @tatsuhiro-t in #2736 H2load expected by @tatsuhiro-t in #2737 nghttp: Adopt std::expected by @tatsuhiro-t in #2738 nghttpd: Adopt std::expected by @tatsuhiro-t in #2739 HtmlParser: Adopt std::expected by @tatsuhiro-t in #2740 src: Adopt size_t literal suffix by @tatsuhiro-t in #2742 nghttp: put pseudo headers before normal headers by @zhanhb in #2741 h2load: Replace std::cerr with std::print by @tatsuhiro-t in #2744 h2load: Replace std::cout with std::print by @tatsuhiro-t in #2745 nghttpx: Migrate to std::print by @tatsuhiro-t in #2746 Nghttp print by @tatsuhiro-t in #2747 Nghttpd print by @tatsuhiro-t in #2748 src: Migrate std::cout to std::print by @tatsuhiro-t in #2749 src: Simplify as_string_view usage by @tatsuhiro-t in #2750 src: Migrate fprintf to C++ counterparts by @tatsuhiro-t in #2751 src: Use std::println without argument to print just line separator by @tatsuhiro-t in #2752 nghttpx: Create CID encryption ctx per worker by @tatsuhiro-t in #2753 nghttpx: Use std::unique_ptr for quic_keying_materials_ by @tatsuhiro-t in #2754 Src optimize by @tatsuhiro-t in #2755 src: Provide faster hash functions for OpenSSL forks by @tatsuhiro-t in #2756 src: Adopt std::expected for http2::make_websocket_accept_token by @tatsuhiro-t in #2757 src: NSDMI part1 by @tatsuhiro-t in #2758 src: Add noexcept to move ctor and assignment operator by @tatsuhiro-t in #2759 build(deps): bump github.com/quic-go/quic-go from 0.59.0 to 0.59.1 by @dependabot[bot] in #2760 build(deps): bump golang.org/x/net from 0.53.0 to 0.54.0 by @dependabot[bot] in #2761 src: MSDMI part2 by @tatsuhiro-t in #2762 Avoid azure ubuntu mirror by @tatsuhiro-t in #2763 src: MSDMI part3 by @tatsuhiro-t in #2764 src/allocator: Rewrite concat_string_ref with fold expression by @tatsuhiro-t in #2765 src: Fix build failure on macos26 by @tatsuhiro-t in #2766 cmake: Remove CMAKE_CXX_STANDARD 23 that is not needed there by @tatsuhiro-t in #2767 Fix base64 oob by @tatsuhiro-t in #2768 Nghttpx upgrade by @tatsuhiro-t in #2769 Make NGHTTP2_HTTP_FLAG_* macros and make them unsigned by @tatsuhiro-t in #2770 Define flags as macros by @tatsuhiro-t in #2771 Make NGHTTP2_EXTPRI_INC_MASK unsigned by @tatsuhiro-t in #2772 src: Avoid zero-argument std::println by @kmehltretter82 in #2773 build(deps): bump golang.org/x/net from 0.54.0 to 0.55.0 by @dependabot[bot] in #2774 GHA: Add Cygwin build by @tatsuhiro-t in #2775 Fix docker build by @tatsuhiro-t in #2776 lib: Rewrite integer decoder in http by @tatsuhiro-t in #2777 Bump ngtcp2 and its dependencies by @tatsuhiro-t in #2778 Avoid deprecated ngtcp2 and nghttp3 apis by @tatsuhiro-t in #2779 net: Use macros for win32 hton*/ntoh* fallbacks by @tatsuhiro-t in #2780 lib: Add nghttp2_downcase_byte by @tatsuhiro-t in #2781 Rework HTTP header validation by @tatsuhiro-t in #2782 Bump sfparse by @tatsuhiro-t in #2783 helper: Initialize array with designated initializers by @tatsuhiro-t in #2784 Reformat downcase table by @tatsuhiro-t in #2785 http: Initialize array with designated initializers by @tatsuhiro-t in #2786 Upper case hex integer literals in huffman data table by @tatsuhiro-t in #2787 Upcase hex by @tatsuhiro-t in #2788 Nghttpx h2 stream write timeout by @tatsuhiro-t in #2789 bpf, examples, tests: Upper case hex integer literals by @tatsuhiro-t in #2790 Reformat huffman data table by @tatsuhiro-t in #2791 nghttpx: Provide frontend and backend stream timeouts by @tatsuhiro-t in #2794 build(deps): bump github.com/quic-go/quic-go from 0.59.1 to 0.60.0 by @dependabot[bot] in #2792 nghttpx: Reformat help message to make it editor friendly by @tatsuhiro-t in #2796 nghttpx: Drop connection when frontend write rate is too low by @tatsuhiro-t in #2797 build(deps): bump golang.org/x/net from 0.55.0 to 0.56.0 by @dependabot[bot] in #2799 build(deps): bump actions/checkout from 6 to 7 by @dependabot[bot] in #2800 Bump ngtcp2 and its dependencies by @tatsuhiro-t in #2802 nghttpx: Drop h3 connection when frontend write rate is too low by @tatsuhiro-t in #2803 build(deps): bump actions/cache from 5 to 6 by @dependabot[bot] in #2804 Gcc 16 by @tatsuhiro-t in #2805 nghttpx: NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE is not allowed in on_frame_recv_callback by @tatsuhiro-t in #2806 nghttpx: Rename completeCb_ to complete_cb_ by @tatsuhiro-t in #2807 nghttpx: Remove unused unordered_set include by @tatsuhiro-t in #2808 Require nghttp3 >= 1.17.0 by @tatsuhiro-t in #2810 Add the missing header value check for priority header field by @tatsuhiro-t in #2813 build(deps): bump golang.org/x/net from 0.56.0 to 0.57.0 by @dependabot[bot] in #2814 build(deps): bump actions/setup-go from 6 to 7 by @dependabot[bot] in #2815 Count CONTINUATIONS per its frame header by @tatsuhiro-t in #2818 build(deps): bump github.com/quic-go/quic-go from 0.60.0 to 0.61.0 by @dependabot[bot] in #2819 Bump ngtcp2 and its dependencies by @tatsuhiro-t in #2820 Bump neverbleed by @tatsuhiro-t in #2821 Bump llhttp to v9.4.2 by @tatsuhiro-t in #2822 nghttpx: Reset quic upstream addr fd to the current path by @tatsuhiro-t in #2823

nghttp2 1.69.0 rpms released

nghttp2 1.69.0 rpms released and added to all supported platforms.

Major changes:

- src: Simplify format_hex and format_upper_hex
- build(deps): bump actions/upload-artifact from 4 to 5
- hpack: Optimize huffman decoding a bit
- Port ngtcp2_map changes
- Remove unused macros and enums
- src: Rewrite defer
- src: Remove empty parameter list from lambda
- src: Remove noexcept from ~Defer
- src: Adopt EVP_PKEY_get0_EC_KEY
- nghttpx: Avoid separate allocation for QUIC tx buffer
- src: Workaround performance regression since OpenSSL 3.0
- integration: Cope with os.ErrProcessDone
- build(deps): bump github.com/quic-go/quic-go from 0.55.0 to 0.56.0
- src: Simplify DList::remove
- src: Remove the duplicated test
- lib/CMakeLists.txt: Fix NGHTTP2_CONFIG_INSTALL_DIR path
- nghttpx: Ensure resetting downstream h2 stream
- build(deps): bump golang.org/x/crypto from 0.43.0 to 0.45.0
- Gha ubuntu arm
- src: Generate lowcase_tbl
- examples: Remove redundant cast in lowcase
- build(deps): bump actions/checkout from 5 to 6
- build(deps): bump github.com/quic-go/quic-go from 0.56.0 to 0.57.0
- Bump ngtcp2 and its dependencies
- build(deps): bump github.com/quic-go/quic-go from 0.57.0 to 0.57.1
- Fix union usage in nghttp2_data_provider_wrap
- Remove union from WorkerID
- Cancel sending RST_STREAM if stream is not found
- nghttpx: Remove stream_closed_ from Http2DownstreamConnection
- Remove extraneous semicolon
- src: Rewrite Address with std::variant
- build(deps): bump actions/upload-artifact from 5 to 6
- build(deps): bump actions/cache from 4 to 5
- build(deps): bump golang.org/x/net from 0.47.0 to 0.48.0
- build(deps): bump github.com/quic-go/quic-go from 0.57.1 to 0.58.0
- Rewrite Dockerfile with heredoc syntax
- src: Avoid strict aliasing violation
- Introduce nghttp2_strlen_lit
- build(deps): bump github.com/quic-go/quic-go from 0.58.0 to 0.59.0
- Increase default glitch rate limit to 10x
- build(deps): bump golang.org/x/net from 0.48.0 to 0.49.0
- GHA: Fix main branch in cancel-in-progress by
- Remove glitch detection for ignored DATA frame by
- Revert "src: Avoid strict aliasing violation" by
- build(deps): bump golang.org/x/net from 0.49.0 to 0.50.0
- Check nghttp2_is_fatal first
- altsvc: Avoid pointer arithmetic against NULL
- Ensure typedefs use named structs and unions
- Revert "Ensure typedefs use named structs and unions"
- build(deps): bump actions/upload-artifact from 6 to 7
- build(deps): bump golang.org/x/net from 0.50.0 to 0.51.0
- h2load: Fix bug that h2load does not stop early with -D option
- h2load: Add median, p95, and p99 metrics
- h2load: Refactor SDStat output
- h2load: Refactor metrics manual
- h2load: Add some QUIC metrics
- h2load: Plot histogram
- Amend #2619
- build(deps): bump docker/build-push-action from 6 to 7
- build(deps): bump docker/setup-buildx-action from 3 to 4
- h2load: Show certificate type and negotiated group
- nghttpd, nghttpx: Accept at most 10 connections per loop
- h2load: Support TLS resumption
- src: Avoid consteval for now
- nghttpx: Accept pending connections until it returns error
- h2load: Make the names of perf metric short and concise
- nghttpx: Rework close-wait packet generation for h3
- nghttpx: Add extra validation for non-regular path for HTTP/1.1
- nghttpx: More strict validation for h1 host
- h2load: Output the measurement results in JSON
- Src pass by value
- src: Refine Defer
- h2load: Print integral samples as integral
- h2load: Refactor with std::span
- nghttpd: Refactor with std::span
- build(deps): bump golang.org/x/net from 0.51.0 to 0.52.0
- nghttp: Refactor with std::span
- h2load: Use span for reading
- nghttp: Move span creation out of loop
- Add missing iframe state validation
- src: Refactor Buffer::write with std::span
- src: Adopt override keyword
- src: Simplify as_uint8_span with auto
- src: Review the use of iterator and range concepts
- nghttpx: Use std::span for upstream interface
- nghttpx: Modernize downstream connection with std::span
- nghttpx: Deal with partial write in API downstream connection
- build(deps): bump microsoft/setup-msbuild from 2 to 3
- nghttpx: Adopt std::span for LiveCheck read path
- Nghttpx connection write span
- Nghttpx connection read span
- nghttpx: Refactor QUIC utils with std::span
- nghttpx: Choose the sensible value for TCP_DEFER_ACCEPT
- src: Refactor riovec with std::span
- nghttpx: Simplify HTTP/2 writer
- h2load: Add --h3 option
- nghttpx: Format doc
- nghttpx: Deal with ECONNRESET for IPC socket on worker process side
- third-party: Bump neverbleed
- doc: Update h2load howto
- Bump llhttp to v9.3.1
- GHA: Add macos-26 build and remove macos-14 build
- h2load: Deal with h3 unidirectional stream closure
- src: Refine allocator with the modern memory construct
- Modernize BlockAllocator and its utility functions
- nghttpx: Rewrite LOG macros with std::source_location
- nghttpx: Amend #2671 to fix double logging
- nghttpx: Call Log ctor directly
- nghttpx: Rename LOG_ENABLED to log_enabled
- src: Remove enclosing anonymous namespace from constexpr variables
- src: Add static constexpr to ngtcp2 and nghttp3 callbacks
- OpenSSL 4.0.0 beta1 fix by @xl32
- build(deps): bump actions/github-script from 8 to 9
- build(deps): bump golang.org/x/net from 0.52.0 to 0.53.0
- GHA: Bump openssl to v4.0.0
- Optimize the decoded length estimation for Huffman encoded string
- Make header related errors stream error with glitch rate limit guard
- Bump ngtcp2 to v1.22.1
- Nghttpx ech
- nghttpx: Log the number of loaded ECH configuration in NOTICE level
- Bump aws-lc
- @trukna made their first contribution
- @cbarrick made their first contribution
- @xl32 made their first contribution

nghttp2 1.62.1 released

nghttp2 1.62.1 rpms released and added to EL7, EL8 and EL9 platforms.

At the same time please note that we already build nghttp2 for EL7 and EL8 since 1.61.0 with patches that allow c-ares 1.10 usage, as c-ares 1.16 is the minimum supported version.

nghttp2 requires C++-20 and is built with GCC 13 on EL8 and EL9.

UPD. EL7 platform is built with clang 15.