Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/elixir-webrtc/ex_ice
Implementation of ICE protocol (RFC 8445)
https://github.com/elixir-webrtc/ex_ice
elixir ice webrtc
Last synced: 3 months ago
JSON representation
Implementation of ICE protocol (RFC 8445)
- Host: GitHub
- URL: https://github.com/elixir-webrtc/ex_ice
- Owner: elixir-webrtc
- License: apache-2.0
- Created: 2022-07-24T11:53:16.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-10-08T18:52:57.000Z (4 months ago)
- Last Synced: 2024-11-09T13:26:33.408Z (3 months ago)
- Topics: elixir, ice, webrtc
- Language: Elixir
- Homepage:
- Size: 213 KB
- Stars: 12
- Watchers: 1
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ExICE
[![Hex.pm](https://img.shields.io/hexpm/v/ex_ice.svg)](https://hex.pm/packages/ex_ice)
[![API Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/ex_ice)
[![CI](https://img.shields.io/github/actions/workflow/status/elixir-webrtc/ex_ice/ci.yml?logo=github&label=CI)](https://github.com/elixir-webrtc/ex_ice/actions/workflows/ci.yml)
[![codecov](https://codecov.io/gh/elixir-webrtc/ex_ice/graph/badge.svg?token=E98NHC8B00)](https://codecov.io/gh/elixir-webrtc/ex_ice)Trickle ICE implementation.
Implements:
* [RFC 8445](https://datatracker.ietf.org/doc/html/rfc8445)
* [RFC 8838](https://datatracker.ietf.org/doc/html/rfc8838)
* [ICE mDNS](https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-mdns-ice-candidates) (client side)## Features
* compatible both with aggressive and regular nomination
* role conflict resolution
* supports host, prflx, srflx and relay candidates
* transaction pacing
* keepalives (both incoming and outgoing) on valid and selected pairs
* mDNS client## Limitations
* there is always only one stream and one component -
we don't plan to add support for multiple streams and components
as WebRTC multiplexes traffic on a single socket but PRs are welcomed## Installation
```elixir
def deps do
[
{:ex_ice, "~> 0.8.3"}
]
end
```## Usage
See our [example](https://github.com/elixir-webrtc/ex_ice/tree/master/example),
[integration tests](https://github.com/elixir-webrtc/ex_ice/blob/master/test/integration/p2p_test.exs),
and [documentation](https://hexdocs.pm/ex_ice/readme.html) for usage examples.We also provide a very simple [signalling server](https://github.com/elixir-webrtc/ex_ice/tree/master/signalling_server), which can be used
to connect two ICE agents.