# `Buble.Transport`
[🔗](https://github.com/bublehq/sdks/blob/main/lib/buble/transport.ex#L1)

Behaviour for Buble HTTP transports.

Applications normally use the default `Buble.Transport.Req` transport. Tests can
inject a small module implementing this behaviour through `Buble.Client.new/1`.

# `request`

```elixir
@callback request(Buble.Client.t(), atom(), String.t(), keyword()) ::
  {:ok, term()} | {:error, Buble.Error.t()}
```

# `stream`

```elixir
@callback stream(Buble.Client.t(), atom(), String.t(), keyword()) ::
  {:ok, Enumerable.t()} | {:error, Buble.Error.t()}
```

---

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