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.