Changes for version 1.506_06

  • multi-server: per-server struct with multi-listener support
  • new_instance() for multiple independent server instances
  • tls 1.3 via vendored picotls + openssl
  • per-listener tls contexts, mixed plain/tls listeners
  • alpn negotiation for h2/http1.1
  • http/2 via nghttp2: stream multiplexing, streaming responses, request body with flow control
  • extended CONNECT / websocket tunnels (rfc 8441)
  • h2 idle timeout with goaway
  • runner: multiple --listen, --tls-cert-file, --tls-key-file, --h2, --proxy-protocol, fractional --read-timeout
  • optimize psgi env hash creation: direct build
  • header_timeout for slowloris attack protection
  • max_connections limit for connection-based dos protection
  • pause_accept/resume_accept for traffic control
  • active_conns() and total_requests() for monitoring
  • native io() and return_from_io() for protocol upgrades
  • query() method for direct query string access
  • ipv6 support with bracket notation parsing
  • libev priority controls (read/write/accept_priority)
  • epollexclusive support for linux prefork scaling
  • max_accept_per_loop to prevent accept starvation
  • expect: 100-continue support for http/1.1 clients
  • transfer-encoding: chunked request body support
  • poll_cb support on reader handles for streaming input
  • sendfile() zero-copy file transfer (linux)
  • so_reuseport for better prefork scaling

Documentation

feersum app loader

Modules

A PSGI engine for Perl based on EV/libev
HTTP connection encapsulation
PSGI-style reader/writer objects.
feersum script core
plack adapter for Feersum

Provides

in lib/Feersum/Connection/Handle.pm
in lib/Feersum/Connection/Handle.pm