Revision history for Hypersonic
0.11 2026-01-31
- Fix can_link() to properly pass headers to Devel::CheckLib
- Fix can_link() test to work reliably with compiler builtins (libm sin)
- Add missing C includes to UA.pm for socket/networking types
- Attempt a portable strcasestr implementation for non-GNU systems
- Fix compilation failures on Linux (missing headers, GNU extensions)
- Fix WebSocket g_websocket_handlers not declared when no dynamic routes
- Fix WebSocket requires Stream module (set needs_streaming for WebSocket)
- Fix WebSocket test to handle frame arriving with HTTP handshake
0.10 2026-01-29
- RequestID Middleware
- More C89 compliance refactoring
0.09 2026-01-29
- Fix io_uring backend to check for liburing library (not just headers)
- Add event backend ldflags to XS compile options
- Fix test race conditions with active port probing instead of sleep()
- Fix OpenSSL check to verify library is actually linkable
- Fix zlib check to verify library is actually linkable
- Fix SSE test includes for FreeBSD/BSD compatibility
0.08 2026-01-28
- Add Hypersonic::UA HTTP client with JIT-compiled XS
- Optional feature compilation (async, parallel, tls, http2, compression)
- Connection pooling with keep-alive support
- Async request support (currently only kqueue/epoll supported)
- Benchmark static get against python, rust and go.
0.07 2026-01-28
- Adds c_helpers for reusable c functions
- Adds need_xs_builder as an endpoint feature...
- Refactor Future::Pool so you can have more than one
- Centralise the caching
- Be a little more JIT but some improvements can still be made..
0.06 2026-01-28
- Async/Future Enhancements in preparation to remove the next bottle
0.05 2026-01-28
- Fix G_LIST -> G_ARRAY for Perl 5.32+ compatibility (CPAN testers fix)
0.04 2026-01-27
- Split out event loops
- Split out http1 protocol
- Add HTTP/2 support via nghttp2
- Add some SSE support
- Add Websockets (only v13 currently)
- Some will know what we need next...
0.03 2026-01-26
- Response
- Request
- TLS
- Session
- Compress
0.02 2025-01-26
- Dynamic route support for real request handling
- Path parameters (e.g., /users/:id) automatically extract values
- Handlers receive $req hashref with method, path, body, id
- Mixed static/dynamic routes in same server
- Static routes still ~290K req/sec, dynamic routes call Perl per-request
0.01 2025-01-26
- Initial release
- JIT-compiled XS functions via XS::JIT (not Perl custom ops)
- Handlers run once at compile time, full HTTP responses baked into C
- Pure C event loop (kqueue on macOS/BSD, epoll on Linux)
- ~290K requests/second on single core
- Zero Perl in the hot path - recv/dispatch/send all in C
- Support for GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS
- Keep-alive connection support
- TCP_NODELAY for low latency