-
Notifications
You must be signed in to change notification settings - Fork 71
Description
I am back with another inquiry! :)
Currently, I am trialing usage of str0m's IceAgent in a project that just needs ICE but nothing else around WebRTC. In particular, we don't want to pull in openssl as a dependency. I have a few small patches locally that publicly export a handful APIs around the ice module. However, I also have one that pretty much comments out everything that deals with openssl which is just a hack for now.
I would like to get some opinions on what a collaborative and useful way forward is. I think a SANS-IO & compliant ICE implementation is something really useful so I don't really want to fork str0m longterm. The ice module also depends on the io and parser module which makes extracting it not quite straight-forward. Additionally, splitting up str0m into multiple crates creates an additional maintenance burden.
I think extracting a dedicated str0m-ice crate (name to be bike-shedded) would make the most sense:
- The dependency on
parsercould be avoided by removingCandidate::from_sdp_string. This one is actually a circular dependency so could be argued shouldn't exist in the first place. - The dependency on
iois a bit trickier. To do message parsing,stun_codeccould be used. I've had good experiences with it. Alternatively, something likestr0m-stunwould have to be introduced that handles message parsing. - The rest of IO, i.e. all the SANS-IO modelling would either also have to go into a dedicated crate or perhaps inlined into
str0m-ice?
Curious to hear your thoughts!