HTTPower.Adapter.Finch (HTTPower v0.16.0)
View SourceFinch 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)
- Manual JSON decoding for flexibility
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.