I'd recommend Rust for your shared client core, even though for short-term practicality you probably have to keep using Google's C++ WebRTC library, because translating your existing high-level client code to safe Rust would be easier than translating it to reasonably safe C++.
If you're interested in pursuing this, the best starting point I've found for using the WebRTC C++ library from Rust is this: https://github.com/arcas-io/libwebrtc So far it looks like it only works on Linux and Mac.
Thanks for the pointer to that project, we'll take a look. =)
On your recommendation of Rust over C++, is the thought to deal with the double-bridging (platform-sdk => rust => libwebrtc) until webrtc.rs gets to a point where libwebrtc can be swapped out?
Yeah, I'd do double-bridging for now. The Rust/C++ bridging is pretty low-overhead IIUC, but getting it all to build and link together is probably a pain.
If you're interested in pursuing this, the best starting point I've found for using the WebRTC C++ library from Rust is this: https://github.com/arcas-io/libwebrtc So far it looks like it only works on Linux and Mac.