Alien::nghttp3

CI Perl License nghttp3

Alien::nghttp3 makes the native libnghttp3 library available to Perl modules.

nghttp3 is a C library for HTTP/3 and QPACK. It does not provide QUIC transport.

Installation

Install it like a normal Perl module:

cpanm Alien::nghttp3

Alien::nghttp3 first looks for libnghttp3 1.18.0 or newer on the system.

If a suitable system library is found, it is used.

If not, Alien::nghttp3 builds the vendored nghttp3 1.18.0 source included in this distribution. The fallback build does not download nghttp3 from the network.

Using Alien::nghttp3

Perl modules that need libnghttp3 can use the normal Alien interface:

use Alien::nghttp3;

my $cflags  = Alien::nghttp3->cflags;
my $libs    = Alien::nghttp3->libs;
my $version = Alien::nghttp3->version;

These values can be used when compiling and linking XS code.

Scope

Alien::nghttp3 only supplies libnghttp3.

It does not provide a Perl HTTP/3 API, QUIC transport, TLS, an event loop, or a web framework.

It does not depend on Net::QUIC, Linux::Event, ngtcp2, or any other QUIC implementation.

This keeps the distribution usable by any Perl project that needs libnghttp3.

Requirements

Alien::nghttp3 requires:

The fallback build uses CMake and builds only the static libnghttp3 library.

Vendored source

The fallback source is nghttp3 1.18.0.

The exact upstream source and sfparse revision are recorded in vendored source notes.

Development

perl Makefile.PL
make
make test

See CONTRIBUTING.md for more information.

License

Alien::nghttp3 is released under the MIT License.

The vendored nghttp3 and sfparse sources are also MIT licensed.