nghttp2 - HTTP/2 C Library
This is an implementation of Hypertext Transfer Protocol version 2.
The project is hosted at github.com/nghttp2/nghttp2.
Contents:
- nghttp2 - HTTP/2 C Library
- Development Status
- Public Test Server
- Requirements
- Building nghttp2 from release tar archive
- Building from git
- Notes for building on Windows (MSVC)
- Notes for building on Windows (Mingw/Cygwin)
- Notes for installation on Linux systems
- Building the documentation
- Build HTTP/3 enabled h2load and nghttpx
- Unit tests
- Integration tests
- Migration from v0.7.15 or earlier
- Client, Server and Proxy programs
- Benchmarking tool
- HPACK tools
- Contribution
- Versioning
- License
- Contribution Guidelines
- Building Android binary
- Tutorial: HTTP/2 client
- Tutorial: HTTP/2 server
- Tutorial: HPACK API
- nghttp(1)
- nghttpd(1)
- nghttpx(1)
- h2load(1)
- nghttpx - HTTP/2 proxy - HOW-TO
- Default mode
- HTTP/2 proxy mode
- ALPN support
- Disable frontend SSL/TLS
- Enable backend SSL/TLS
- Enable SSL/TLS on memcached connection
- Specifying additional server certificates
- Specifying additional CA certificate
- Read/write rate limit
- Rewriting location header field
- Hot swapping
- Re-opening log files
- Multiple frontend addresses
- Multiple backend addresses
- Dynamic hostname lookup
- Enable PROXY protocol
- Session affinity
- PSK cipher suites
- TLSv1.3
- WebSockets over HTTP/2
- HTTP/3
- Migration from nghttpx v1.18.x or earlier
- Migration from nghttpx v1.8.0 or earlier
- h2load - HTTP/2 benchmarking tool - HOW-TO
- Programmers' Guide
- API Reference
- Macros
- Enums
- Types (structs, unions and typedefs)
- nghttp2_check_authority
- nghttp2_check_header_name
- nghttp2_check_header_value
- nghttp2_check_header_value_rfc9113
- nghttp2_check_method
- nghttp2_check_path
- nghttp2_extpri_parse_priority
- nghttp2_hd_deflate_bound
- nghttp2_hd_deflate_change_table_size
- nghttp2_hd_deflate_del
- nghttp2_hd_deflate_get_dynamic_table_size
- nghttp2_hd_deflate_get_max_dynamic_table_size
- nghttp2_hd_deflate_get_num_table_entries
- nghttp2_hd_deflate_get_table_entry
- nghttp2_hd_deflate_hd
- nghttp2_hd_deflate_hd2
- nghttp2_hd_deflate_hd_vec
- nghttp2_hd_deflate_hd_vec2
- nghttp2_hd_deflate_new
- nghttp2_hd_deflate_new2
- nghttp2_hd_inflate_change_table_size
- nghttp2_hd_inflate_del
- nghttp2_hd_inflate_end_headers
- nghttp2_hd_inflate_get_dynamic_table_size
- nghttp2_hd_inflate_get_max_dynamic_table_size
- nghttp2_hd_inflate_get_num_table_entries
- nghttp2_hd_inflate_get_table_entry
- nghttp2_hd_inflate_hd
- nghttp2_hd_inflate_hd2
- nghttp2_hd_inflate_hd3
- nghttp2_hd_inflate_new
- nghttp2_hd_inflate_new2
- nghttp2_http2_strerror
- nghttp2_is_fatal
- nghttp2_nv_compare_name
- nghttp2_option_del
- nghttp2_option_new
- nghttp2_option_set_builtin_recv_extension_type
- nghttp2_option_set_max_continuations
- nghttp2_option_set_max_deflate_dynamic_table_size
- nghttp2_option_set_max_outbound_ack
- nghttp2_option_set_max_reserved_remote_streams
- nghttp2_option_set_max_send_header_block_length
- nghttp2_option_set_max_settings
- nghttp2_option_set_no_auto_ping_ack
- nghttp2_option_set_no_auto_window_update
- nghttp2_option_set_no_closed_streams
- nghttp2_option_set_no_http_messaging
- nghttp2_option_set_no_recv_client_magic
- nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation
- nghttp2_option_set_peer_max_concurrent_streams
- nghttp2_option_set_server_fallback_rfc7540_priorities
- nghttp2_option_set_stream_reset_rate_limit
- nghttp2_option_set_user_recv_extension_type
- nghttp2_pack_settings_payload
- nghttp2_pack_settings_payload2
- nghttp2_priority_spec_check_default
- nghttp2_priority_spec_default_init
- nghttp2_priority_spec_init
- nghttp2_rcbuf_decref
- nghttp2_rcbuf_get_buf
- nghttp2_rcbuf_incref
- nghttp2_rcbuf_is_static
- nghttp2_select_alpn
- nghttp2_select_next_protocol
- nghttp2_session_callbacks_del
- nghttp2_session_callbacks_new
- nghttp2_session_callbacks_set_before_frame_send_callback
- nghttp2_session_callbacks_set_data_source_read_length_callback
- nghttp2_session_callbacks_set_data_source_read_length_callback2
- nghttp2_session_callbacks_set_error_callback
- nghttp2_session_callbacks_set_error_callback2
- nghttp2_session_callbacks_set_on_begin_frame_callback
- nghttp2_session_callbacks_set_on_begin_headers_callback
- nghttp2_session_callbacks_set_on_data_chunk_recv_callback
- nghttp2_session_callbacks_set_on_extension_chunk_recv_callback
- nghttp2_session_callbacks_set_on_frame_not_send_callback
- nghttp2_session_callbacks_set_on_frame_recv_callback
- nghttp2_session_callbacks_set_on_frame_send_callback
- nghttp2_session_callbacks_set_on_header_callback
- nghttp2_session_callbacks_set_on_header_callback2
- nghttp2_session_callbacks_set_on_invalid_frame_recv_callback
- nghttp2_session_callbacks_set_on_invalid_header_callback
- nghttp2_session_callbacks_set_on_invalid_header_callback2
- nghttp2_session_callbacks_set_on_stream_close_callback
- 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_callbacks_set_send_data_callback
- nghttp2_session_callbacks_set_unpack_extension_callback
- nghttp2_session_change_extpri_stream_priority
- nghttp2_session_change_stream_priority
- nghttp2_session_check_request_allowed
- nghttp2_session_check_server_session
- nghttp2_session_client_new
- nghttp2_session_client_new2
- nghttp2_session_client_new3
- nghttp2_session_consume
- nghttp2_session_consume_connection
- nghttp2_session_consume_stream
- nghttp2_session_create_idle_stream
- nghttp2_session_del
- nghttp2_session_find_stream
- nghttp2_session_get_effective_local_window_size
- nghttp2_session_get_effective_recv_data_length
- nghttp2_session_get_extpri_stream_priority
- nghttp2_session_get_hd_deflate_dynamic_table_size
- nghttp2_session_get_hd_inflate_dynamic_table_size
- nghttp2_session_get_last_proc_stream_id
- nghttp2_session_get_local_settings
- nghttp2_session_get_local_window_size
- nghttp2_session_get_next_stream_id
- nghttp2_session_get_outbound_queue_size
- nghttp2_session_get_remote_settings
- nghttp2_session_get_remote_window_size
- nghttp2_session_get_root_stream
- nghttp2_session_get_stream_effective_local_window_size
- nghttp2_session_get_stream_effective_recv_data_length
- nghttp2_session_get_stream_local_close
- nghttp2_session_get_stream_local_window_size
- nghttp2_session_get_stream_remote_close
- nghttp2_session_get_stream_remote_window_size
- nghttp2_session_get_stream_user_data
- nghttp2_session_mem_recv
- nghttp2_session_mem_recv2
- nghttp2_session_mem_send
- nghttp2_session_mem_send2
- nghttp2_session_recv
- nghttp2_session_resume_data
- nghttp2_session_send
- nghttp2_session_server_new
- nghttp2_session_server_new2
- nghttp2_session_server_new3
- nghttp2_session_set_local_window_size
- nghttp2_session_set_next_stream_id
- nghttp2_session_set_stream_user_data
- nghttp2_session_set_user_data
- nghttp2_session_terminate_session
- nghttp2_session_terminate_session2
- nghttp2_session_upgrade
- nghttp2_session_upgrade2
- nghttp2_session_want_read
- nghttp2_session_want_write
- nghttp2_set_debug_vprintf_callback
- nghttp2_stream_get_first_child
- nghttp2_stream_get_next_sibling
- nghttp2_stream_get_parent
- nghttp2_stream_get_previous_sibling
- nghttp2_stream_get_state
- nghttp2_stream_get_sum_dependency_weight
- nghttp2_stream_get_weight
- nghttp2_strerror
- nghttp2_submit_altsvc
- nghttp2_submit_data
- nghttp2_submit_data2
- nghttp2_submit_extension
- nghttp2_submit_goaway
- nghttp2_submit_headers
- nghttp2_submit_origin
- nghttp2_submit_ping
- nghttp2_submit_priority
- nghttp2_submit_priority_update
- nghttp2_submit_push_promise
- nghttp2_submit_request
- nghttp2_submit_request2
- nghttp2_submit_response
- nghttp2_submit_response2
- nghttp2_submit_rst_stream
- nghttp2_submit_settings
- nghttp2_submit_shutdown_notice
- nghttp2_submit_trailer
- nghttp2_submit_window_update
- nghttp2_version
- nghttp2.h
- nghttp2ver.h
- Source
- Issues
- nghttp2.org
Released Versions
https://github.com/nghttp2/nghttp2/releases
Resources
HTTP Alternative Services https://tools.ietf.org/html/rfc7838