The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Net::HTTP2 - HTTP/2 in Perl, simplified.

SYNOPSIS

See Net::HTTP2::Client::Mojo.

DESCRIPTION

This distribution wraps Protocol::HTTP2 to simplify use of HTTP/2 in Perl.

See Net::HTTP2::Client for the client interface.

(This class itself exposes no code; it’s just here as generic documentation for the distribution.)

STATUS

This module is experimental. Interface changes may still happen, and error handling may not be all up to snuff. Please file bug reports as appropriate.

EVENT LOOPS/ABSTRACTIONS

HTTP/2 fits most naturally into non-blocking (rather than blocking) I/O; hence, this module requires use of an event loop. To ensure broad compatibility, this library supports multiple event loop abstractions. Currently AnyEvent, IO::Async, and Mojolicious are supported.

TLS

Since the major web browsers require TLS for HTTP/2, this library does, too. Thus, this library needs Net::SSLeay, and it must link to an OpenSSL that supports ALPN or NPN.

(NB: Otherwise, this module and its non-core dependency tree are pure Perl!)

If there’s a need for unencrypted HTTP/2, it can be added easily enough.

CHARACTER ENCODING

Unless otherwise noted, all strings into & out of this library are byte strings.

ERROR HANDLING

Most thrown errors are Net::HTTP2::X::Base instances.

SEE ALSO

  • Shuvgey is an HTTP/2 server. Like this module it wraps Protocol::HTTP2, but it targets a more specific use case.

  • Net::Curl::Easier offers another path to HTTP/2 in Perl as long as your system’s curl supports it.

  • HTTP::Tiny comes with Perl and exposes a simple interface for running HTTP/1 queries.

LICENSE & COPYRIGHT

Copyright 2022 Gasper Software Consulting. All rights reserved.

Net::HTTP2 is licensed under the same terms as Perl itself (cf. perlartistic).