url-parse-nginx 0.2.0

A faithful, 1-to-1 Rust port of nginx's URL path parser (ngx_http_parse_uri / ngx_http_parse_complex_uri) for origin-form paths.
Documentation
url-parse-nginx
===============

This product includes software developed by Igor Sysoev and Nginx, Inc.:

    nginx — https://nginx.org/
    Copyright (C) 2002-2021 Igor Sysoev
    Copyright (C) 2011-2026 Nginx, Inc.
    Licensed under the 2-clause BSD license (see LICENSE).

Provenance of nginx-derived code
--------------------------------

url-parse-nginx exists to reproduce nginx's URL path normalization exactly.
It is therefore a derivative work of nginx and reuses nginx source as follows:

* src/lib.rs
    A close, 1-to-1 Rust port of two functions from nginx's
    src/http/ngx_http_parse.c:
      - ngx_http_parse_uri()
      - ngx_http_parse_complex_uri()
    and the `usual[]` character bitmap. The control flow, state machine, and
    the `usual[]` table values are taken directly from nginx.

* nginx-reference/nginx_url.c
    Contains VERBATIM copies of `usual[]`, ngx_http_parse_uri(), and
    ngx_http_parse_complex_uri() from the same nginx source file, plus a thin
    authored wrapper. This file is generated by nginx-reference/tools/extract.sh,
    which downloads a pinned official nginx release from nginx.org (version and
    sha256 are pinned in that script) and extracts the regions verbatim. It is
    used only by the differential fuzzer, not by the published library.

The pinned nginx version used to generate the vendored C is recorded in
nginx-reference/tools/extract.sh (NGINX_VERSION) and in the header comment of
nginx-reference/nginx_url.c.

Because nginx is licensed under the 2-clause BSD license, the whole of
url-parse-nginx is distributed under that same license. See LICENSE for the
full text and the retained nginx copyright notice.