The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning. Learn more →
Top 23 Go Streaming Projects
-
mediamtx
Ready-to-use SRT / WebRTC / RTSP / RTMP / LL-HLS media server and media proxy that allows to read, publish, proxy, record and playback video and audio streams.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
Centrifugo
Scalable real-time messaging server in a language-agnostic way. Self-hosted alternative to Pubnub, Pusher, Ably. Set up once and forever.
-
Jocko
Kafka implemented in Golang with built-in coordination (No ZK dep, single binary install, Cloud Native)
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
go2rtc
Ultimate camera streaming application with support RTSP, RTMP, HTTP-FLV, WebRTC, MSE, HLS, MP4, MJPEG, HomeKit, FFmpeg, etc.
-
omniparser
omniparser: a native Golang ETL streaming parser and transform library for CSV, JSON, XML, EDI, text, etc.
-
euterpe
Self-hosted music streaming server 🎶 with RESTful API and Web interface. Think of it as your very own Spotify! ☁️🎧
-
frpc-go
fRPC-go is a lightweight, fast, and secure RPC framework implemented for Go that uses Frisbee under the hood
-
ganymede
Twitch VOD and Live Stream archiving platform. Includes a rendered and real-time chat for each archive.
-
machine
Machine is a zero dependency library for highly concurrent Go applications. It is inspired by errgroup.Group with extra bells & whistles (by autom8ter)
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Project mention: Bad audio quality when re-encoding RTSP stream from AAC to Opus in MediaMTX | /r/ffmpeg | 2023-12-09I started a discussion on the MediaMTX Github repo, where you can find more information on my problem: https://github.com/bluenviron/mediamtx/discussions/2787
Project mention: WebSockets vs. Server-Sent-Events vs. Long-Polling vs. WebRTC vs. WebTransport | news.ycombinator.com | 2024-03-20Hello, I am author of https://github.com/centrifugal/centrifugo. Our users can choose from WebSocket, EventSource, WebTransport (experimental stabilize in the future). WebRTC is out of scope as the main purpose is central server based real-time json/binary messaging, and WebRTC makes things much more complex since it shines for peer-to-peer and rich media communications.
What I'd like to add is that Centrifugo also supports HTTP-streaming – not mentioned by the OP – but this is a transport which has advantages over Eventsource - like possibility to send POST body on initial request from web browser (with SSE you can not), it supports binary, and with Readable Streams browser API it's widely supported by modern browsers.
Another thing I'd like to mention about Centrifugo - it supports bidirectional WebSocket fallbacks with EventSource and HTTP-streaming, and does this without sticky sessions requirement. I guess nobody else have this at this point. See https://centrifugal.dev/blog/2022/07/19/centrifugo-v4-releas.... Which solves one more practical concern. Sticky sessions is an optimization in Centrifugo case, not a requirement.
If you are interested in topic, we also have a post about WebSocket scalability - https://centrifugal.dev/blog/2020/11/12/scaling-websocket - it covers some design decisions made in Centrifugo.
https://github.com/anacrolix/torrent has a fuse driver since 2013. I'm in the early stages of removing it. There are WebDAV, 3rd party FUSE, and HTTP wrappers of the client all doing similar things: serving magnet links, infohashes, and torrent files like an immutable filesystem. BitTorrent v2 support is currently in master.
Not my project but I have had great success with https://github.com/gtxaspec/wz_mini_hacks & V3 model.
The V3 models need to be downgraded to a specific firmware first and patching it exposes RSTP streams using https://github.com/AlexxIT/go2rtc. Everything doable without ever installing Wyze app on an environment air gapped environment with no internet.
Source code:matrixorigin/matrixone: Hyperconverged cloud-edge native database (github.com)
We use saw to tail lambda log:
You can learn more about fly.io and tigris, we will need to create an account on both platforms for this project regardless. Anyway with the theory out of the way let's get started in the next section as we create our accounts and start building the app.
Go Streaming related posts
- Bad audio quality when re-encoding RTSP stream from AAC to Opus in MediaMTX
- Lambda recursive loop detection - but not (yet) for S3
- 7 eufy indoor cam 2k, continuous recording and RTPS
- 0x0: Share Files from Terminal
- Trying to use Frigate with eufy battery cameras (RTSP stream not always available)
- Postgres: The Graph Database You Didn't Know You Had
- Guide: how to stream from OBS -> Plex Live TV
-
A note from our sponsor - WorkOS
workos.com | 19 Apr 2024
Index
What are some of the best open-source Streaming projects in Go? This list will help you:
Project | Stars | |
---|---|---|
1 | Pion WebRTC | 12,633 |
2 | mediamtx | 9,856 |
3 | Centrifugo | 7,888 |
4 | torrent | 5,307 |
5 | Jocko | 4,878 |
6 | RxGo | 4,852 |
7 | archiver | 4,228 |
8 | go2rtc | 3,185 |
9 | liftbridge | 2,532 |
10 | matrixone | 1,665 |
11 | saw | 1,387 |
12 | dicom | 895 |
13 | csvutil | 885 |
14 | tigris | 885 |
15 | MovieNight | 658 |
16 | omniparser | 626 |
17 | stun | 558 |
18 | euterpe | 515 |
19 | mediadevices | 504 |
20 | frpc-go | 426 |
21 | ganymede | 362 |
22 | machine | 358 |
23 | rtp | 325 |