simple-peer
chaskiq
Our great sponsors
simple-peer | chaskiq | |
---|---|---|
15 | 19 | |
7,186 | 2,906 | |
- | 3.4% | |
0.0 | 6.7 | |
2 months ago | about 2 months ago | |
JavaScript | TypeScript | |
MIT License | GNU General Public License v3.0 or later |
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
- Game engine for JavaScript engineer
-
WebTorrent
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
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
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.
-
stream channel not working properly when used along side data channel.
I am trying to implement a video chat app using simple-peer library. I am using the stream channel to exchange webCam videos of peers. And for text messaging I am using the data channel from simple peer. I implemented the video streaming part using the stream channel and it works perfect as I wanted to. But when I tried to add the text chat functionality and used the data channel to exchange messages between peers the stream channel does not work fine and all the socket connection between peers breaks up. Also again if I remove the data channel snippet from the code everything works fine. I also raised an issue on simple-peer's repo: https://github.com/feross/simple-peer/issues/899
-
Show HN: WebRTC Nuts and Bolts, A holistic way of understanding how WebRTC runs
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
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.
-
I wrote a peer to peer file sharing site
It is using the simple-peer library to manage the peer connections. You can open the share url in a separate tab if you want to try it locally. If you know how to use the developer tools you can see it is not uploading to a server. The only thing my server is doing is creating a websocket connection initiating the peer connection then it closes the socket. Everything else is done on the browser without the need of a server.
-
Building a customer support solution focused on video calls
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
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.
chaskiq
-
⚡ Chaskiq, the self-hosted live chat, releases version 2.0.0 ⚡
We are thrilled to announce the release of Chaskiq 2.0, a major milestone for our open-source live chat and messaging system. This update marks the successful migration of our text editor, Dante.
-
Any selfhosted tool to replace Intercom/Tidio/Zendesk?
Chasiq
-
Ticketing system?
Maybe you want to have a look at Zammad (screenshots) or Chaskiq (Website).
-
Chaskiq recommendation
Forks often end up with difficulties and they're often outdated because people don't fetch upstream updates after a while. Also they have basically no visibility. Chasiq has 279 forks as of today and pretty much all of them are outdated.
- Any decent Rails + GraphQL repos to look at?
-
Aló! Chaskiq 0.9.9 is out 🍻, New channels: SMS, Telephony, and much much more!
Chaskiq is basically an omnichannel live chat platform with CRM and inbound/outbound marketing capabilities. Please check our https://github.com/chaskiq/chaskiq , for more information 😅. You can also check our website at https://chaskiq.io/ to test the product.
- Question: Helpcenter software
-
Zendesk pretends to be open source?
I think the Zendesk article forgot us, take a look at a truly open source solution for CRM, live chat and more. https://github.com/chaskiq/chaskiq
-
Best UI Frameworks for React.js
Chaskiq
-
Building a customer support solution focused on video calls
- Try https://github.com/chaskiq/chaskiq and see what we can do with it. My concern with it, is that it might not be "enterprise ready" in terms of reliability and security
What are some alternatives?
peerjs - Simple peer-to-peer with WebRTC.
dependabot-core - 🤖 Dependabot's core logic for creating update PR's.
janus-gateway - Janus WebRTC Server
rasa-webchat - A feature-rich chat widget for Rasa and Botfront
aiortc - WebRTC and ORTC implementation for Python using asyncio
chatkitty-js - Build chat in minutes with ChatKitty's real-time messaging framework.
webrtc-video-conference - WebRTC video conference app
WebRTC-Scalable-Broadcast - This module simply initializes socket.io and configures it in a way that single broadcast can be relayed over unlimited users without any bandwidth/CPU usage issues. Everything happens peer-to-peer!
Open-Source-Ruby-and-Rails-Apps - Awesome Ruby and Rails Open Source applications 🌈
open-easyrtc - Open-EasyRTC - EasyRTC Free of Priologic
supervisor-app - Supervisor is a simple widget helping you monitor the weekly progress of your agents and their availability.