# quiver v0.2.0 - API Reference

## Modules

- [Quiver.Proxy](Quiver.Proxy.md): HTTP CONNECT tunnel establishment.

- [Quiver.Upgrade](Quiver.Upgrade.md): Represents a completed HTTP 101 Switching Protocols upgrade.

- Client API
  - [Quiver](Quiver.md): A mid-level HTTP client for Elixir supporting HTTP/1.1 and HTTP/2.
  - [Quiver.Request](Quiver.Request.md): HTTP request data container.

  - [Quiver.Response](Quiver.Response.md): HTTP response data container.

  - [Quiver.StreamResponse](Quiver.StreamResponse.md): Response struct for streaming HTTP requests.

- Integrations
  - [Tesla.Adapter.Quiver](Tesla.Adapter.Quiver.md): Tesla adapter for the Quiver HTTP client.

- Configuration
  - [Quiver.Config](Quiver.Config.md): Consolidated validation for all Quiver configuration.

  - [Quiver.Config.Rule](Quiver.Config.Rule.md): A parsed pool routing rule with origin pattern and pool configuration.
  - [Quiver.Supervisor](Quiver.Supervisor.md): Named supervision tree for a Quiver HTTP client instance.

- Telemetry
  - [Quiver.Telemetry](Quiver.Telemetry.md): Telemetry event definitions and helpers for Quiver.

- Errors
  - [Quiver.Error](Quiver.Error.md): Structured error system for Quiver.
  - [Quiver.Error.CheckoutTimeout](Quiver.Error.CheckoutTimeout.md): Pool checkout timed out waiting for an available connection.

  - [Quiver.Error.CompressionError](Quiver.Error.CompressionError.md): HPACK decompression failed.

  - [Quiver.Error.ConnectionClosed](Quiver.Error.ConnectionClosed.md): Remote peer closed the connection unexpectedly.

  - [Quiver.Error.ConnectionFailed](Quiver.Error.ConnectionFailed.md): Generic connection failure not covered by a more specific error type.

  - [Quiver.Error.ConnectionRefused](Quiver.Error.ConnectionRefused.md): Connection refused by remote host.

  - [Quiver.Error.DNSResolutionFailed](Quiver.Error.DNSResolutionFailed.md): DNS resolution failed for the given host.

  - [Quiver.Error.FrameSizeError](Quiver.Error.FrameSizeError.md): HTTP/2 frame exceeds maximum allowed size or has invalid length.

  - [Quiver.Error.GoAway](Quiver.Error.GoAway.md): Connection-level GOAWAY signal -- the connection is shutting down.
  - [Quiver.Error.GoAwayUnprocessed](Quiver.Error.GoAwayUnprocessed.md): Request was not processed by the server before GOAWAY.
  - [Quiver.Error.HeaderListTooLarge](Quiver.Error.HeaderListTooLarge.md): Outgoing header list exceeds the server-advertised MAX_HEADER_LIST_SIZE (RFC 9113 Section 6.5.2).

  - [Quiver.Error.Invalid](Quiver.Error.Invalid.md): Caller-side mistakes where fixing the input resolves the error.

  - [Quiver.Error.InvalidContentLength](Quiver.Error.InvalidContentLength.md): Non-numeric or conflicting content-length value.

  - [Quiver.Error.InvalidPoolOpts](Quiver.Error.InvalidPoolOpts.md): Pool options failed Zoi validation.

  - [Quiver.Error.InvalidPoolRule](Quiver.Error.InvalidPoolRule.md): Pool config key could not be parsed as a valid origin pattern.

  - [Quiver.Error.InvalidScheme](Quiver.Error.InvalidScheme.md): URL with unsupported URI scheme.

  - [Quiver.Error.MalformedHeaders](Quiver.Error.MalformedHeaders.md): Unparseable HTTP header line.

  - [Quiver.Error.MaxConcurrentStreamsReached](Quiver.Error.MaxConcurrentStreamsReached.md): Cannot open a new stream; server's max concurrent streams limit reached.

  - [Quiver.Error.PoolStartFailed](Quiver.Error.PoolStartFailed.md): Dynamic pool creation failed.

  - [Quiver.Error.ProtocolViolation](Quiver.Error.ProtocolViolation.md): HTTP protocol violation -- malformed status line, invalid version, garbage bytes.

  - [Quiver.Error.ProxyConnectFailed](Quiver.Error.ProxyConnectFailed.md): Proxy CONNECT tunnel establishment failed with a non-2xx status.

  - [Quiver.Error.StreamClosed](Quiver.Error.StreamClosed.md): Attempted operation on a closed or non-existent HTTP/2 stream.

  - [Quiver.Error.StreamError](Quiver.Error.StreamError.md): Error raised when consuming a streaming response body.

  - [Quiver.Error.StreamReset](Quiver.Error.StreamReset.md): Remote peer reset a specific HTTP/2 stream.

  - [Quiver.Error.TLSHandshakeFailed](Quiver.Error.TLSHandshakeFailed.md): TLS handshake failed due to cipher mismatch, protocol error, etc.

  - [Quiver.Error.TLSVerificationFailed](Quiver.Error.TLSVerificationFailed.md): TLS certificate verification failed for the given host.

  - [Quiver.Error.Timeout](Quiver.Error.Timeout.md): Connect or receive timeout.

  - [Quiver.Error.Transient](Quiver.Error.Transient.md): Temporary failures where retrying the same request may succeed.

  - [Quiver.Error.Unrecoverable](Quiver.Error.Unrecoverable.md): Infrastructure failures that will not resolve without intervention.

- Pools
  - [Quiver.Pool](Quiver.Pool.md): Common interface for protocol-specific pool implementations.
  - [Quiver.Pool.HTTP1](Quiver.Pool.HTTP1.md): HTTP/1 connection pool backed by NimblePool.
  - [Quiver.Pool.HTTP2](Quiver.Pool.HTTP2.md): HTTP/2 connection pool coordinator.
  - [Quiver.Pool.HTTP2.Connection](Quiver.Pool.HTTP2.Connection.md): gen_state_machine process owning a single HTTP/2 connection.
  - [Quiver.Pool.Manager](Quiver.Pool.Manager.md): Stateless pool routing module.

- Connections
  - [Quiver.Conn](Quiver.Conn.md): Behaviour for HTTP connection implementations.
  - [Quiver.Conn.HTTP1](Quiver.Conn.HTTP1.md): HTTP/1.1 connection as a stateless data struct.
  - [Quiver.Conn.HTTP1.Parse](Quiver.Conn.HTTP1.Parse.md): Incremental HTTP/1.1 response parser.
  - [Quiver.Conn.HTTP1.Request](Quiver.Conn.HTTP1.Request.md): HTTP/1.1 request line and header serialization.

  - [Quiver.Conn.HTTP2](Quiver.Conn.HTTP2.md): HTTP/2 connection as a stateless data struct.
  - [Quiver.Conn.HTTP2.Frame](Quiver.Conn.HTTP2.Frame.md): HTTP/2 frame encode/decode per RFC 9113.

- Transports
  - [Quiver.Transport](Quiver.Transport.md): Behaviour for socket transports.
  - [Quiver.Transport.SSL](Quiver.Transport.SSL.md): SSL/TLS transport wrapping `:ssl`.
  - [Quiver.Transport.TCP](Quiver.Transport.TCP.md): TCP transport wrapping `:gen_tcp`.

