Rewrite the ICE stack in RUST
Categories
(Core :: WebRTC: Networking, enhancement, P3)
Tracking
()
People
(Reporter: ng, Assigned: ng)
Details
The current ICE stack used by WebRTC, nICEr, is a candidate for Oxidation. This bug will contain investigation findings, and the Oxidation work if carried through.
Updated•3 years ago
|
Comment 1•1 year ago
|
||
There is https://github.com/webrtc-rs/webrtc, but it is async Rust code, which makes it a bit harder to integrate with FFI: https://github.com/webrtc-rs/webrtc/issues/602
One could write a wrapper-Rust crate that basically duplicates all the functions we need from it, and simply wraps them in block_on()-calls to make them sync, and then expose that via FFI (see for example: https://tokio.rs/tokio/topics/bridging). This has a lot of overhead, though (performance and maintenance-wise, see also: https://nullderef.com/blog/rust-async-sync/#_calling_block_on).
Therefore, it could also make sense to fork only the ICE-part and remove async completely.
Description
•