# `GRPC.Server.Adapter`
[🔗](https://github.com/elixir-grpc/grpc_server/blob/v1.0.1/lib/grpc/server/adapter.ex#L1)

HTTP server adapter for GRPC.

# `state`

```elixir
@type state() :: %{
  pid: pid(),
  handling_timer: reference() | nil,
  resp_trailers: map(),
  compressor: atom() | nil,
  pending_reader: nil
}
```

# `send_headers`

```elixir
@callback send_headers(state(), headers :: map()) :: any()
```

# `send_reply`

```elixir
@callback send_reply(state(), content :: binary(), opts :: keyword()) :: any()
```

# `start`

```elixir
@callback start(
  atom(),
  %{required(String.t()) =&gt; [module()]},
  port :: non_neg_integer(),
  opts :: keyword()
) :: {atom(), any(), non_neg_integer()}
```

# `stop`

```elixir
@callback stop(atom(), %{required(String.t()) =&gt; [module()]}) ::
  :ok | {:error, :not_found}
```

---

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