# `GRPC.Channel`
[🔗](https://github.com/elixir-grpc/grpc/tree/master/grpc/blob/v1.0.1/lib/grpc/channel.ex#L1)

A struct to store the connection data, which should be passed to
RPC functions as the first argument:

    Greeter.Stub.say_hello(channel, request)

## Fields

  * `:host` - server's host to connect
  * `:port` - server's port to connect
  * `:scheme` - scheme of connection, like `http`
  * `:cred` - credentials used for authentication
  * `:adapter` - a client adapter module, like `GRPC.Client.Adapters.Gun`
  * `:codec` - a default codec for this channel
  * `:adapter_payload` - payload the adapter uses

# `t`

```elixir
@type t() :: %GRPC.Channel{
  accepted_compressors: [module()],
  adapter: atom(),
  adapter_payload: any(),
  codec: module(),
  compressor: module(),
  cred: GRPC.Credential.t(),
  headers: list(),
  host: String.t(),
  interceptors: [],
  port: non_neg_integer(),
  ref: reference() | nil,
  scheme: String.t()
}
```

---

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