# `ExUtcp.Transports.WebRTC`
[🔗](https://github.com/universal-tool-calling-protocol/elixir-utcp/blob/main/lib/ex_utcp/transports/webrtc.ex#L1)

WebRTC transport for ExUtcp.

Provides peer-to-peer communication using WebRTC data channels.
Supports:
- Peer-to-peer tool calling without server intermediary
- Low-latency communication with NAT traversal
- Secure communication with DTLS encryption
- Multiple data channels for concurrent operations
- ICE candidate exchange and STUN/TURN server support

# `t`

```elixir
@type t() :: %ExUtcp.Transports.WebRTC{
  connection_timeout: integer(),
  connections: %{required(String.t()) =&gt; pid()},
  ice_servers: [map()],
  providers: %{required(String.t()) =&gt; map()},
  signaling_server: String.t()
}
```

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `new`

```elixir
@spec new(keyword()) :: t()
```

Creates a new WebRTC transport.

# `start_link`

```elixir
@spec start_link(keyword()) :: {:ok, pid()} | {:error, term()}
```

Starts the WebRTC transport GenServer.

---

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