Packages
pillar
0.39.0
0.40.0
0.39.0
0.38.0
0.37.0
0.36.0
0.35.0
0.34.1
0.34.0
0.33.1
0.33.0
0.32.0
0.31.0
0.30.0
0.29.1
0.29.0
0.28.0
0.27.0
0.26.1
0.26.0
0.25.1
0.25.0
0.24.0
0.23.3
0.23.2
0.23.1
0.23.0
0.22.0
0.21.0
0.20.0
0.19.0
0.18.2
0.18.1
0.18.0
0.17.3
0.17.2
0.17.1
0.17.0
0.16.2
0.16.1
0.16.0
0.15.0
0.14.0
0.13.1
0.13.0
0.12.0
0.11.0
0.10.0
0.9.1
0.9.0
0.8.1
0.8.0
0.7.0
0.6.0
0.5.1
0.5.0
0.4.0
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.0
Elixir client for ClickHouse, a fast open-source Online Analytical Processing (OLAP) database management system.
Current section
Files
Jump to
Current section
Files
stuff/advanced/http_adapters.md
# HTTP Adapters
Pillar supports multiple HTTP adapters for communicating with ClickHouse servers. This allows you to choose the best implementation for your specific requirements or environment.
## Available Adapters
Pillar comes with two built-in HTTP adapters:
1. **Tesla Mint Adapter** (default) - Uses [Tesla](https://github.com/teamon/tesla) with the [Mint](https://github.com/elixir-mint/mint) HTTP client
2. **Httpc Adapter** - Uses Erlang's built-in `:httpc` module
## Adapter Architecture
Each adapter implements the `Pillar.HttpClient.Adapter` behaviour, which requires a `post/3` function:
```elixir
@callback post(url :: String.t(), post_body :: String.t(), options :: keyword()) ::
Pillar.HttpClient.Response.t()
| Pillar.HttpClient.TransportError.t()
| %{__struct__: RuntimeError, message: String.t()}
```