Introducing PeerWave: My First Repository

Introducing PeerWave: My First Repository
Logo of PeerWave

I'm excited to announce the launch of my very first GitHub repository: PeerWave. This project embodies my enthusiasm for decentralized technology and peer-to-peer sharing. PeerWave leverages WebRTC to create a seamless, serverless experience for sharing screens, windows, tabs, and multiple files directly between peers. Let me take you through the key features and how it all works!

How it Works

In its current version, PeerWave allows you to share your screen, window, tab, or multiple files effortlessly. This app uses Socket.io to manage some metadata for peers and files, but the actual data is shared directly between peers—no server in the middle! This means all direct peers share the same stream or downloaded files, increasing your audience and overcoming traditional limitations.

PeerWave uses the WebRTC standard to achieve this. A Google STUN server helps establish connections between peers, but you can also use your own STUN server if you decide to host the app yourself. It’s important to note that all metadata in this app is temporary and will be lost if the server restarts.

Try It

You can try a live instance of PeerWave at peerwave.org. Give it a spin and experience the power of peer-to-peer sharing!

Limitations

While PeerWave is a powerful tool, it does have some limitations. Your upload speed is shared with your direct peers, which can impact performance. Streaming factors like codec, resolution, and refresh rate can increase CPU or GPU load, affecting upload speed.

For file sharing, the file size and number of files can increase memory usage. Files are split into chunks, and your peers share downloaded files, holding the data in their memory.

Source Code

PeerWave is an open-source project licensed under the MIT license. Feel free to explore the source code and contribute!

Thank you for taking the time to learn about PeerWave. I hope you find it as exciting and useful as I do. Happy sharing!