Open Bug 1616966 Opened 5 years ago Updated 1 year ago

Rewrite the ICE stack in RUST

Categories

(Core :: WebRTC: Networking, enhancement, P3)

enhancement

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.

Severity: normal → S3

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.

You need to log in before you can comment on or make changes to this bug.