# `HTTPower.Adapter.Finch`
[🔗](https://github.com/mdepolli/httpower/blob/v0.22.0/lib/httpower/adapter/finch.ex#L2)

Finch adapter for HTTPower.

This adapter uses the Finch HTTP client library to make HTTP requests. Finch is a
performance-focused HTTP client built on Mint and NimblePool, with explicit connection
pooling and excellent performance characteristics.

## Features

- High-performance HTTP/1.1 and HTTP/2 support
- Explicit connection pooling with configurable pool sizes
- Built on Mint for low-level HTTP transport
- SSL/TLS support with configurable verification
- Proxy support (system or custom)

## Configuration

The Finch adapter accepts standard HTTPower options:

- `timeout` - Request timeout in seconds (converted to milliseconds for Finch)
- `ssl_verify` - Enable SSL verification (default: true)
- `proxy` - Proxy configuration (`:system`, `nil`, or custom options)

## Pool Configuration

Configure Finch pools globally in your application config:

    config :httpower, :finch_pools,
      default: [
        size: 10,
        count: System.schedulers_online(),
        conn_opts: [
          timeout: 5_000
        ]
      ]

## Testing

The Finch adapter works seamlessly with `HTTPower.Test` for mocking HTTP requests in tests.
The test interceptor runs before Finch is called, providing adapter-agnostic testing.

## Performance

Finch is recommended for high-throughput production scenarios where explicit connection
pooling control and maximum performance are priorities. It's built on Mint, the same
low-level library that powers Req.

---

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