pion / awesome-pion Goto Github PK
View Code? Open in Web Editor NEWA curated list of awesome things related to Pion
Home Page: https://pion.ly/
A curated list of awesome things related to Pion
Home Page: https://pion.ly/
The link https://github.com/go-radio/go-radio returns 404 error
Connect your devices into a single secure private WireGuard®-based mesh network.
Wiretrustee is using pion/ice to interconnect NAT-ed Wireguard peers.
@xsbchen what do you think of creating rules for projects in the list?
I think it would be nice to say Projects must be on the latest major version of Pion WebRTC
, if they are not maybe we can mark them? It could be a good opportunity for others to help update the projects!
There are a lot of use cases for easy p2p communication between browser and edge devices. Most stemming from giving users ultimate privacy and control over their own data. Breaking free of big brother cloud providers that offer convenient collection and "care" of user data.
There are many http client and server libraries, a vast body of knowledge and established best practices (e.g REST, JSON, GRPC) over HTTP(1,2,websockets). Implementations are available for most OS platforms and languages. However there is currently no well established project that solves the combination of the two issues: easy p2p over http APIs.
Developers looking to build web browser supported p2p APIs have to dive deep and master the complicated, unfamiliar, low level WebRTC APIs that are also hard to debug and test.
A number of projects in the awesome-pion section approach this problem from slightly different perspectives.
https://github.com/jsmouret/grpc-over-webrtc
https://github.com/duality-solutions/web-bridge
https://github.com/rtctunnel/rtctunnel
https://github.com/keroserene/snowflake
https://github.com/decentraland/webrtc-broker
https://github.com/ailabstw/webrtc-socket-proxy
https://github.com/muka/peerjs-go
Maybe it's worth having a community conversation on joining forces for a minimum viable foundation for http over webrtc that enables other higher level solutions to be built on top.
There are two big sub-topics to cover:
It seems like there is a potential to have a highly available community supported global p2p signaling network of servers.
For example for Ambianic.ai, we rely on the incredibly simple and powerful PeerJS Server that provides an ephemeral, privacy preserving, easy to scale, easy to maintain and extend foundation. We added a peer-room plugin for LAN peer discovery, which solves our use case allowing browser apps to discover and connect to other browser apps or IoT devices on the same WiFi/LAN. The idea and implementation was inspired ShareDrop. More on our particular use case and solution here.
The PeerJS Server deployment has had no unscheduled downtime in 2020 and was last patched over 6 months ago. It's been that reliable, useful and stable.
There are well known community networks for torrents , Tor, Matrix and blockchain support. It only makes sense to have one that has the minimal viable protocol for p2p connectivity that makes no assumptions about how peers will exchange messages once they connect. Nor should it make assumptions about what type of messages will be exchanged.
There is also a growing set of independently maintained public STUN servers, which is the other critical missing piece for p2p comms.
Here is a strawman for a minimal signaling server functionality:
That's essentially what PeerJS Server does today. It has a plug-in architecture that allows higher level signaling protocols to be built on top. Similarly to STUN servers, PeerJS Servers are standalone and can be deployed for a private p2p network or shared with the community for public access.
Can we designate PeerJS Server as the minimum signaling server reference implementation or we need to design something different?
This problem can be split into stages:
An initial primitive implementation for stage 1 on the browser side is available here. A corresponding http-over-webrtc-proxy implementation is available here (in Python).
There a few other OSS projects that have overlapping goals, but broader scope.
libp2p (an IPFS sub-project) has a webrtc subgroup with http over webrtc layer.
The Matrix team is experimenting with p2p comms over http with browser support:
I looked at
https://github.com/pion/awesome-pion?tab=readme-ov-file
I expect that this just contains projects which are not dead
I saw several projects which have not been updated since 4 years.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.