Open-source Go projects categorized as WebRTC

Top 23 Go WebRTC Projects

  • Pion WebRTC

    Pure Go implementation of the WebRTC API

    Project mention: Build VOIP call feature with Rails API and React Native | reddit.com/r/rails | 2023-01-07

    You’d better to use a framework or language which can handle stream data, like https://github.com/pion/webrtc

  • Tinode

    Instant messaging platform. Backend in Go. Clients: Swift iOS, Java Android, JS webapp, scriptable command line; chatbots

    Project mention: Instant Messaging: XMPP or Websocket | reddit.com/r/selfhosted | 2022-11-05

    Either Tinode (https://github.com/tinode/chat) or Matrix Protocol (https://gitlab.com/famedly/conduit)

  • InfluxDB

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.

  • livekit

    End-to-end stack for WebRTC. SFU media server and SDKs.

    Project mention: Scaling WebRTC with Go: how we built a distributed mesh network for 100k-person events | reddit.com/r/golang | 2022-10-27

    https://github.com/livekit/livekit/blob/master/pkg/service/egress.go looks like the meat of this

  • ion

    Real-Distributed RTC System by pure Go and Flutter (by ionorg)

  • neko

    A self hosted virtual browser that runs in docker and uses WebRTC.

    Project mention: Looking for a program where I can livestream / share my screen in close to real time (like discord) | reddit.com/r/selfhosted | 2023-01-28

    Depending on how you want to achieve this, you could use a combination of OBS + Restreamer or OBS + Project-Lightspeed. Another solution would be to use more specific solutions like neko

  • webtty

    Share a terminal session over WebRTC

    Project mention: VM manager with web UI that installs on top of existing Ubuntu Server to test restore of REAR backup | reddit.com/r/selfhosted | 2022-09-25

    If you want web client, then perhaps try https://github.com/maxmcd/webtty, and then put qemu vm start in a script..

  • cloud-game

    Web-based Cloud Gaming service for Retro Game

    Project mention: What would be a compelling talk on WebRTC/P2P for Go developers? | reddit.com/r/golang | 2022-02-28
  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • turn

    Pion TURN, an API for building TURN clients and servers

    Project mention: Using WebTransport | news.ycombinator.com | 2022-09-16

    > dedicated signalling

    For my small projects I run my HTTP + WebRTC in the same server. My signaling is one POST. Maybe I am missing the complexity, but I don't feel any additional pain compared to running any network service?

    > STUN Karate

    Mind explaining more? I use https://github.com/pion/turn and run my STUN server embedded in my HTTP server. I do do anything but point my `PeerConnection` at `my-service.com`

  • peer-calls

    Group peer to peer video calls for everyone written in Go and TypeScript

    Project mention: How do Game nights with or without discord? | reddit.com/r/linux_gaming | 2022-06-21

    I don't know much about peercalls's tech stack, but based on eyeballing it, it seems like E2E is an option. https://github.com/peer-calls/peer-calls/pull/142

  • cloud-morph

    Decentralize, Self-host Cloud Gaming/Application

  • ion-sfu

    Pure Go WebRTC SFU

    Project mention: Jitsi: More secure, more flexible, and completely free video conferencing | news.ycombinator.com | 2022-12-21
  • galene

    The Galène videoconference server

    Project mention: Ask HN: FFmpeg real-time desktop streaming | news.ycombinator.com | 2022-11-27

    What latency are you trying to do? Will the professor being communicating with the students while doing this? Will the students all have the same bandwidth, or will you want multiple renditions (low, med, high quality levels)?

    If you want AV1 you will not be able to use RTMP. The protocol is orphaned/deprecated, so avoid if possible!

    If I was building it this is what I would do, and my reasoning.

    * For capture + encoding I would use OBS. You will want to use something that is easy for users to install configure. Professors will also have lots of custom requirements when it comes to layout etc... it will be tempting to do a ffmpeg command directly, but it will fall apart quick I believe.

    * To get AV1 out of OBS I would use FFMPEG output. I would have it send RTP. RTP is used to carry video in a sub-second manner. This is the same protocol that WebRTC uses. You know have AV1 + low latency.

    * Then for users to watch I would use WebRTC. That will allow them to watch in their web browser. Conceptually it will be like this https://github.com/pion/webrtc/tree/master/examples/rtp-to-w... this takes the RTP packets and puts them in the browser.

    Lots of great projects exist that you could use for 'RTP -> WebRTC' like https://galene.org/ and https://livekit.io/ I would suggest checking them all out!

    If you have more questions/want to talk to people in the video space always happy to chat on https://pion.ly/slack :)

  • gfile

    Direct file transfer over WebRTC

  • stunner

    Stunner is a tool to test and exploit STUN, TURN and TURN over TCP servers.

    Project mention: Stunner – tool to test and exploit STUN, TURN and TURN over TCP servers | news.ycombinator.com | 2022-04-25
  • go-stun

    A go implementation of the STUN client (RFC 3489 and RFC 5389)

  • go2rtc

    Ultimate camera streaming application with support RTSP, RTMP, HTTP-FLV, WebRTC, MSE, MJPEG, HomeKit, FFmpeg, etc.

    Project mention: FastoCloud [COM] version currently available on GitHub | reddit.com/r/selfhosted | 2023-01-26
  • mediadevices

    Go implementation of the MediaDevices API.

    Project mention: pkg-config error | reddit.com/r/golang | 2022-05-13

    Hey. I try to get WebRTC Pion to work. For that i follow the instructions on pion/mediadevices: Go implementation of the MediaDevices API. (github.com) . I added the x264 codec.

  • stun

    A Go implementation of STUN (by pion)

    Project mention: NAT behaviour discovery using STUN | news.ycombinator.com | 2022-11-29
  • ice

    A Go implementation of ICE (by pion)

  • 0x-mesh

    A peer-to-peer network for sharing 0x orders

  • rtp

    A Go implementation of RTP

  • tstream

    Live streaming from your terminal

  • snowflake

    WebRTC Pluggable Transport (by keroserene)

    Project mention: The Legacy of Peer-to-Peer Systems | news.ycombinator.com | 2022-12-01
  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-01-28.

Go WebRTC related posts


What are some of the best open-source WebRTC projects in Go? This list will help you:

Project Stars
1 Pion WebRTC 10,632
2 Tinode 9,785
3 livekit 4,468
4 ion 3,688
5 neko 2,901
6 webtty 2,531
7 cloud-game 1,939
8 turn 1,327
9 peer-calls 1,165
10 cloud-morph 900
11 ion-sfu 795
12 galene 722
13 gfile 688
14 stunner 566
15 go-stun 552
16 go2rtc 471
17 mediadevices 421
18 stun 367
19 ice 280
20 0x-mesh 258
21 rtp 254
22 tstream 249
23 snowflake 229
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives