simple-peer VS janus-gateway

Compare simple-peer vs janus-gateway and see what are their differences.

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
simple-peer janus-gateway
15 13
7,145 7,723
- 1.3%
0.0 8.9
about 2 months ago 7 days ago
JavaScript C
MIT License GNU General Public License v3.0 only
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

simple-peer

Posts with mentions or reviews of simple-peer. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-02-23.
  • Game engine for JavaScript engineer
    4 projects | /r/gamedev | 23 Feb 2023
  • WebTorrent
    14 projects | news.ycombinator.com | 29 Nov 2022
    Disclosure: I'm the author of WebTorrent.

    It's so fulfilling to see WebTorrent still popping up on Hacker News after all these years. I started the project in 2013 and devoted most of my 20s to working on it, ultimately becoming a full-time open source maintainer, and writing hundreds of npm packages including buffer (https://github.com/feross/buffer), simple-peer (https://github.com/feross/simple-peer), and StandardJS (https://standardjs.com/).

    I started WebTorrent with the goal of extending the BitTorrent protocol to become more web-friendly, allowing any browser to become a peer in the torrent network. Within less than a year of starting the project, I got WebTorrent fully working. And it worked _well_, beating many native torrent apps in terms of raw download speed and the ability to stream videos within seconds of adding a torrent.

    WebTorrent never got as much attention as the cryptocurrency projects selling tokens throughout the mid-2010s, even though WebTorrent actually worked and had more real users than almost all of them :) I was never tempted to add a crypto-token to WebTorrent, despite many well-meaning friends telling me to do it. Nonetheless, WebTorrent served as an accessible on-ramp to the world of decentralized tech, along with other projects like Dat (https://dat-ecosystem.org/) and Secure Scuttlebutt (https://scuttlebutt.nz/).

    But WebTorrent is more than a protocol extension to BitTorrent. We built a popular desktop torrent client, WebTorrent Desktop (https://webtorrent.io/desktop/), which supports powerful features like instant video streaming.

    We also build a `webtorrent` JavaScript package (see https://socket.dev/npm/package/webtorrent) which implements the full BitTorrent/WebTorrent protocol in JavaScript. This implementation uses TCP, UDP, and/or WebRTC for peer-to-peer transport in any environment – whether Node.js (TCP/UDP), Electron (TCP/UDP/WebRTC), or the web browser (WebRTC). In the browser, the `webtorrent` package uses WebRTC which doesn’t require a browser plugin, extension, or any kind of installation to work.

    If you’re building a website and want to fetch files from a torrent, you can use `webtorrent` to do that directly client-side, in a decentralized manner. The WebTorrent Workshop (https://webtorrent.github.io/workshop/) is helpful for getting started and teaches you how to download and stream a torrent into an HTML page in just 10 lines of code.

    Now that WebTorrent is fully supported in nearly all the most popular torrent clients, including uTorrent, dare I say that we succeeded? It's been a long and winding journey, but I'm glad to have played a role in making this happen. Special shoutouts to all the open source contributors over the years, especially Diego R Baquero, Alex Morais,

    P.S. If you're curious what I'm up to now, I'm building Socket (https://socket.dev). And there's actually a WebTorrent connection, too. Socket came out of a prior product we built called Wormhole (https://wormhole.app), an end-to-end encrypted file transfer application built using WebTorrent under-the-hood (Show HN thread: https://news.ycombinator.com/item?id=26666142). Like Firefox Send before it, security was a primary goal of Wormhole (see security details here: https://wormhole.app/security). But one area where we were lacking was in how we audited our open source dependencies. Like most teams building a JavaScript app, we had a large node_modules folder filled with lots of constantly updating third-party code. The risk of a software supply chain attack was huge, especially with 30% of our visitors coming from China. As most teams do, we enforced code review for all our first-party code. But similar to most teams, we were pulling in third-party dependencies and dependency updates without even glancing at the code (this is something that almost every company does today). We knew we needed to do better for our users. We looked around for a solution to analyze the risk of open source packages but none existed. So we decided to build Socket.

    Socket helps developers ship faster and spend less time on security busywork by helping them safely find, audit, and manage OSS. Socket provides a comprehensive open source risk analysis. By analyzing the full picture – from maintainers and how they behave, to open-source codebases and how they evolve – we enable developers and security teams to identify risk from malware, hidden code, typo-squatting, misleading packages, permission creep, unmaintained or abandoned packages, and poor security practices. For one quick example, take a look at the risks we identified in this Angular.js calendar library: https://socket.dev/npm/package/angular-calendar/issues/0.30....

  • Show HN: America – Road Trip Simulator
    2 projects | news.ycombinator.com | 16 Oct 2022
    Thanks for trying it out!

    The frontend is built with Svelte. This was my first time using the framework and I found their website super helpful: https://svelte.dev/docs

    Used Mapbox API and geolib (https://github.com/manuelbieh/geolib/) for building routes and for other geospatial tasks.

    "Talkie" was built with simple-peer (https://github.com/feross/simple-peer) and WebRTC. Great tutorial can be found on MDN: https://developer.mozilla.org/en-US/docs/Web/Guide/API/WebRT...

    On the backend I use Vercel's serverless functions which are mostly acting as trivial proxies for various open API's.

    Feel free to email me if you need more info.

  • My 2D soccer real-time game made using React and WebRTC
    2 projects | /r/webdev | 9 Oct 2022
    I use simple-peer package: https://github.com/feross/simple-peer. They got good documentation and examples to get started. One thing is that you need to know more about creating signaling server to establish connection between peers - I use socket.io for that.
  • Show HN: WebRTC Nuts and Bolts, A holistic way of understanding how WebRTC runs
    5 projects | news.ycombinator.com | 29 May 2022
    Our team got off the ground really quickly using https://github.com/feross/simple-peer to handle the majority of the WebRTC client implementation. We're sending video and voice, so websockets aren't feasible. I'd say it was a lot easier than I expected coming in cold, and about 95% of connections establish quickly and don't have any problems.

    However for that remaining 5%, I have a lot to learn. Using an abstraction is great when it works, but I'm interested in going through OP's project to get a better sense of what's happening when things go wrong.

  • Ludwigs charity stream raises over $100,000
    2 projects | /r/LivestreamFail | 6 Jan 2022
    For the VoIP part you would look up tutorials on creating your own VoIP server and clients. This is the part where you would have to research a ton when you're not familiar with a technology. Looking into it a bit, CrewLink seems to mainly use a library called simple-peer to connect people together and pass audio between them.
  • Building a customer support solution focused on video calls
    3 projects | /r/selfhosted | 30 Apr 2021
    Custom peer-to-peer video call implementation can also be done using vanilla webrtc or https://github.com/feross/simple-peer but using an SFU such as Janus can help
  • Show HN: Jam, an Open Source Clubhouse
    7 projects | news.ycombinator.com | 14 Feb 2021
    Not an expert here but have some experience with it:

    Assuming that each peer is connected to every other peer via a mesh network [see this image for reference: https://github.com/feross/simple-peer/blob/master/img/full-m...], each outgoing stream (esp. audio / video) is likely going to be duplicated, per recipient.

    Scalability over a mesh network is fully dependent on CPU and network performance of all of the connected devices, and I'd doubt it could handle 12 participants if there is video involved, unless all participants are running relatively high-end and modern devices, with optimal network conditions.

    You'll need a SFU or an MFU running on the server to handle larger rooms, while enabling all connected devices to only have to send one output stream per media type, regardless of how many connected participants there are.

  • Any example of streaming non "user media" media?
    2 projects | /r/WebRTC | 11 Feb 2021
    It isn't really documented anywhere, but here is a thread confirming the behavior
  • A local file storage for the web and interopearability layer for web-based apps (submission)
    6 projects | dev.to | 10 Jan 2021
    For the tmp-webrtc extension, at first I wanted to create a backend service to implement peer discovery. That would also give me an opportunity to try out DigitalOcean’s paid services (like running backend apps and using a managed database). Unfortunately due to time constraints I didn’t get around to doing that and used the P2PT library for peer discovery instead. P2PT uses public WebTorrent trackers as a WebRTC signaling server, and so no backend services have to be deployed. So it ended up being another static app. This is my first time using P2PT and WebRTC for file transfers though, so I still think I learned a lot.

janus-gateway

Posts with mentions or reviews of janus-gateway. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-04.
  • WebRTC for the Curious
    18 projects | news.ycombinator.com | 4 Jan 2024
    > despite WebRTC mostly being about client/client communication

    This is actually kind of a misconception, though it’s an understandable one given that WebRTC is almost always pitched as a peer-to-peer protocol.

    In practice, most people using WebRTC for video are sending their video to a server, not directly to another client. It’s pretty safe to assume that most people who use your app are going to need TURN, and at that point, you’re not really doing peer-to-peer at all, so you might as well just have your browser-based app talk to a server that’s pretending to be another browser.

    These servers (called Selective Forwarding Units or SFUs) can operate like a TURN server in the case of a one-on-one call, but they can also multiplex everyone’s feeds in the case of a larger conference (peer-to-peer 5 person calls would require each participant to send 4 copies of their video) and often have extra features like the ability to record calls, transcode streams or convert to other protocols.

    The one I’ve used a lot is called Janus[0], it’s open source and has good docs, I recommend people check it out if they’re interested in getting deeper into WebRTC or other video streaming tech.

    [0] https://janus.conf.meetecho.com

  • OpenTalk meeting software with Rust back-end open-sourced under EUPL
    4 projects | /r/opensource | 19 Feb 2023
    OpenTalk is a young project for creating online meeting software similar to Jitsi or BigBlueButton. It is a completely new development, and while it is not a fork of an existing open-source project, it integrates with other projects such as the Janus WebRTC server, Redis for volatile state, RabbitMQ for communication between server instances, and PostreSQL for persistent state.
  • Jitsi: More secure, more flexible, and completely free video conferencing
    5 projects | news.ycombinator.com | 21 Dec 2022
  • What are good self-hosted WebRTC video solutions today?
    4 projects | /r/selfhosted | 23 Oct 2022
    I've been looking into Janus WebRTC Server due to the ability for Uv4L to join Janus rooms (I'm building a RaspberyyPi doorbell)
  • Looking for self hosted screen sharing/streaming solution
    19 projects | /r/selfhosted | 19 Sep 2022
    A related answer to the above is to check out Janus. It's a general purpose WebRTC server that has RTMP and FTL ingest support. I think it's also batteries not included, but I think it's what Glimesh is based on.
  • Low-latency audio streaming (local network)
    8 projects | /r/selfhosted | 1 Jan 2022
    I've been using Janus gateway for similar. Pretty easy to setup.
  • Live video calling - the Dyte way
    4 projects | dev.to | 3 Nov 2021
    A number of open-source projects also exist, which give developers a great head start if they're looking to build their own infrastructure - the most popular of these include Jitsi, Mediasoup, Janus, and Pion. These projects provide a layer of abstraction and expose a number of helper functions to perform various tasks, such as creating transports, etc. They have helpful guides on how to get started, but you would still face the aforementioned issues regarding scaling, resources, etc.
  • Stop using Zoom, Hamburg’s data protection agency warns state government
    3 projects | news.ycombinator.com | 17 Aug 2021
    Yes, there are many self-hosted options out there. https://github.com/meetecho/janus-gateway works well for multi-party video with up to about 15 users in a room assuming everyone has a reasonably reliable connection.
  • WebRTC over Asp.Net Core - Any examples?
    7 projects | /r/csharp | 7 May 2021
    - Janus (C / C++)
  • Building a customer support solution focused on video calls
    3 projects | /r/selfhosted | 30 Apr 2021
    You can also take a look at https://github.com/meetecho/janus-gateway which can help you implement the video call part (as well as more traditional rtc scenario)

What are some alternatives?

When comparing simple-peer and janus-gateway you can also consider the following projects:

peerjs - Simple peer-to-peer with WebRTC.

mediasoup - Cutting Edge WebRTC Video Conferencing

jitsi - Jitsi is an audio/video and chat communicator that supports protocols such as SIP, XMPP/Jabber, IRC and many other useful features.

Pion WebRTC - Pure Go implementation of the WebRTC API

aiortc - WebRTC and ORTC implementation for Python using asyncio

libdatachannel - C/C++ WebRTC network library featuring Data Channels, Media Transport, and WebSockets

media-server-node - WebRTC Media Server for Node.js

webrtc-video-conference - WebRTC video conference app

galene - The Galène videoconference server

kms-core - [ARCHIVED] Contents migrated to monorepo: https://github.com/Kurento/kurento

SIPSorcery - A WebRTC, SIP and VoIP library for C# and .NET. Designed for real-time communications apps.