Our great sponsors
libwebrtc | ringrtc | |
---|---|---|
1 | 6 | |
41 | 523 | |
- | 1.3% | |
1.8 | 9.2 | |
almost 2 years ago | 9 days ago | |
Rust | Rust | |
MIT License | GNU Affero General Public License v3.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
libwebrtc
-
LiveKit – open-source, high performance WebRTC infrastructure
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.
ringrtc
-
LiveKit – open-source, high performance WebRTC infrastructure
If you did not know, there is also https://github.com/signalapp/ringrtc by the Signal App team, which is written in Rust
-
Signal now supports group calls up to 40 people, using Rust
Huh, Signal's WebRTC implementation seems to be using Rust implementations of crypto primitives such as AES: example usage, Cargo.toml
-
WhatsApp and most alternatives share the same problem
Signal is still an improvement over other non-federated messengers in that it's open-source, so you actually can try to improve the situation, although it's notoriously difficult. As an example of more platform support: https://github.com/signalapp/ringrtc/pull/12
signal-cli is an example of a 3rd party client which is tolerated for now: https://github.com/AsamK/signal-cli
The main problem right now is that they don't have enough developers to take care of everything, but it's not specific to centralized services (no developer == no code). If you care about it, you can develop your own client using their library (à la signal-cli).
Regarding your last paragraph: I could probably list 20 features I'd like to see in Signal. That doesn't mean I want somebody implementing them with no guarantee about how securely they are implemented. One of the main goals of Signal is to provide guarantees against dragnet surveillance, and that constraint takes precedence.
-
is anyone regretting moving to signal and moving back to whatsapp?
Outside of the Android app, they had a bunch of "new developers" join, and they ported the call signalling framework to Rust: https://github.com/signalapp/ringrtc . This Rust library is now used by the other apps.
What are some alternatives?
Signal-Server - Server supporting the Signal Private Messenger applications on Android, Desktop, and iOS
LibreSignal - LibreSignal • The truly private and Google-Free messenger for Android.
TextSecure - A private messenger for Android.
livekit - End-to-end stack for WebRTC. SFU media server and SDKs.
OvenMediaEngine - OvenMediaEngine (OME) is a Sub-Second Latency Live Streaming Server with Large-Scale and High-Definition. #WebRTC #LLHLS
webrtc - A pure Rust implementation of WebRTC
ring - Safe, fast, small crypto using Rust
syphon - ⚗️ a privacy centric matrix client
datachannel-rs - Rust wrappers for libdatachannel