# `HTTP.Runtime.Pool`
[🔗](https://github.com/gsmlg-dev/http_fetch/blob/v1.0.0-rc.9/apps/http_runtime/lib/http/runtime/pool.ex#L1)

Supervises an explicitly selected, immutable HTTP/1 and HTTP/2 pool family.

    {HTTP.Runtime.Pool,
     name: "api",
     http1: [max_idle_per_key: 1, max_idle: 8],
     http2: [max_connections: 1, max_streams: 16]}

    HTTP.fetch(url, pool: "api")

`reference/1` captures a generation for reuse across requests. Names are atoms
or strings registered without converting external strings into atoms. Families
restart together: old references fail with `:stale_pool` and never fall back.
HTTP/1 selection enables reuse. Explicit `http1_reuse: false`, retention above
the instance policy, managed scopes, HTTP/3 and automatic negotiation are
rejected before dialing. HTTP/2 selection requires reusable pool identities.

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `reference`

Resolves a family name or supervisor PID into a generation-bound reference.

# `start_link`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
