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
Examples
- eg/Caddyfile
- eg/Caddyfile-stream
- eg/app.feersum
- eg/app.psgi
- eg/bench-env-hash.pl
- eg/bench-env-xs/BenchEnv.xs
- eg/bench-env-xs/Makefile.PL
- eg/bench-env-xs/bench.pl
- eg/bench-env-xs/lib/BenchEnv.pm
- eg/bench-feersum-env.pl
- eg/chat.feersum
- eg/haproxy-stream.cfg
- eg/haproxy.cfg
- eg/hello.pl
- eg/ipv6_server.pl
- eg/nginx-stream.conf
- eg/nginx.conf
- eg/oneshot.pl
- eg/sse-server.pl
- eg/sse-server.psgi
- eg/ssl-oneliners.sh
- eg/ssl-proxy/backend.pl
- eg/ssl-proxy/gen-cert.sh
- eg/ssl-proxy/run.pl
- eg/ssl-proxy/server.crt
- eg/ssl-proxy/server.key
- eg/ssl-proxy/stunnel.conf
- eg/test-max-read-buf.pl
- eg/test-reverse-proxy-middleware.pl
- eg/test-reverse-proxy-path-middleware.pl
- eg/test-revise-env-middleware.pl
- eg/websocket-server.pl
- eg/websocket-server.psgi