HTTP/1.1 library for Flyology tasks

HTTP client and server APIs for Flyology.

The client binds requests to one origin and a bounded transport pool. The server keeps each connection and response exchange under one owner. Calls remain synchronous in native and lightweight tasks.

http_client.adb
Response : Client.Response :=
  Client.Get
    (HTTP, "/status",
     Timeout => 2.0);

Body := Client.Read_All
  (Response, Maximum => 64 * 1_024);
HTTP/1.1 framingFixed, chunked, streaming, upgrade, and close behavior remain explicit.
Bounded retained statePools, bodies, mailboxes, and admission have declared limits.
One monotonic deadlineAdmission, transport setup, I/O, and body consumption share the request budget.

Public interfaces

Client and server share framing policy, not lifecycle state.

Both directions use Flyology I/O and preserve ordinary synchronous call semantics. Their connection and resource ownership remain separate.

01 / CLIENT

Origin-bound request lifecycle

Configure a bounded pool, validate request metadata, stream an optional body, then consume or abandon the leased response deliberately.

Client contracts and examples
requestbounded poolresponse
02 / SERVER

Connection-owned exchange lifecycle

Parse and frame responses on the connection owner, with optional routing, middleware, streaming, SSE, WebSockets, and detached native offload.

Server contracts and examples
connectionexchangeresponse

Library boundary

HTTP is built on Flyology.

The library uses task-aware sockets, TLS, files, cancellation, buffers, channels, and structured task scopes from Flyology Runtime. It does not patch the Ada runtime itself.

Inspect the runtime architecture
  1. 01

    Protocol framing

    HTTP/1.1 request and response state remains explicit, including chunking, trailers, upgrades, and close behavior.

  2. 02

    Application policy

    Routing, body policy, middleware, admission, and native offload compose above the protocol connection.

  3. 03

    Transport waits

    Flyology suspends a lightweight task without blocking its event-loop pthread and preserves the native-task path.

Current scope

Implemented boundaries are part of the interface.

Flyology HTTP is experimental. Validate the exact compiler, host, TLS provider, workload, and operating limits for your application.

Available
HTTP/1.1 client and server, compatible HTTP/1.0 responses, streaming bodies, routing, middleware, SSE, WebSockets, and provider-neutral TLS.
Not available
HTTP/2, proxying, content decoding, challenge-driven client authentication, or a production-qualification claim.
Evidence
Deterministic protocol tests, native/lightweight lane parity, parser mutation campaigns, and published Autobahn WebSocket reports.