Keep the package boundary explicit.
The HTTP crate depends on Flyology; Flyology does not depend on HTTP. Public HTTP calls remain synchronous Ada calls in either task lane. A lightweight caller may suspend while Flyology waits for socket or TLS readiness, while a native caller retains the ordinary blocking-thread path.
- Flyology HTTP
- Request and response framing, headers, client pools, routing, middleware, SSE, WebSockets, and application-server policy.
- Flyology
- Task-aware sockets, TLS, connections, files, buffers, cancellation, structured scopes, execution groups, and runtime integration.
The client leases one response stream.
An origin-bound client bounds open and connecting transports. One monotonic deadline covers admission, DNS, connection attempts, TLS, transmission, response-head parsing, and later body reads. The returned response retains a transport lease until its body is consumed or deliberately abandoned; only a cleanly framed connection can return to the pool.
Read the client guide for request bodies, redirects, authentication, pooling, and HTTPS behavior.
The server keeps exchange ownership local.
A connection handler parses one request, applies body policy, and owns the response framing for that exchange. Routing and deterministic middleware compose above the connection without transferring the live socket. SSE and WebSocket upgrades preserve an explicit connection lifecycle rather than creating a second hidden transport owner.
Read the server guide for routing, middleware, request tasks, streaming, and upgrades.
Only detached values cross native offload.
A routed handler may prepare bounded, detached CPU input and submit it to Flyology's native executors. The live exchange, request body, connection, and response writer stay with the request owner. Results return as detached values and are rendered on the original owner, preserving framing and cancellation ownership.
Current scope is HTTP/1.1.
The library currently covers an HTTP/1.1 client and server, compatible HTTP/1.0 responses, streaming bodies, routing, middleware, SSE, WebSockets, and provider-neutral TLS. It does not provide HTTP/2, proxying, content decoding, challenge-driven client authentication, or production qualification.
The generated API reference is authoritative for exact parameters, exceptions, ownership rules, and limits.