Go Streaming

Open-source Go projects categorized as Streaming | Edit details
Related topics: #Go #Golang #Webrtc #Video #Messaging

Top 23 Go Streaming Projects

  • GitHub repo Pion WebRTC

    Pure Go implementation of the WebRTC API

    Project mention: Go stack for web development | reddit.com/r/golang | 2022-01-03

    For WebRTC check out Pion https://github.com/pion/webrtc

  • GitHub repo Centrifugo

    Scalable real-time messaging server in a language-agnostic way. Set up once and forever.

    Project mention: Woe be onto you for using a WebSocket | news.ycombinator.com | 2021-12-22

    Every time I read criticism of WebSockets it reminds me about WebSuckets (https://speakerdeck.com/3rdeden/websuckets) presentation :)

    I am the author of Centrifugo server (https://github.com/centrifugal/centrifugo) - where the main protocol is WebSocket. Agree with many points in post – and if there is a chance to build sth without replacing stateless HTTP to persistent WebSocket (or EventSource, HTTP-streaming, raw TCP etc) – then definitely better to go without persistent connections.

    But there are many tasks where WebSockets simply shine – by providing a better UX, providing a more interactive content, instant information/feedback. This is important to keep - even if underlying stack is complicated enough. Not every system need to scale to many machines (ex. multiplayer games with limited number of players), corporate apps not really struggle from massive reconnect scenarios, and so on. So WebSockets are definitely fine for certain scenarios IMO.

    I described some problems with WebSockets Centrifugo solves in this blog post - https://centrifugal.dev/blog/2020/11/12/scaling-websocket. I don't want to say there are no problems, I want to say that WebSockets are fine in general and we can do some things to deal with things mentioned in the OP's post.

  • SonarLint

    Deliver Cleaner and Safer Code - Right in Your IDE of Choice!. SonarLint is a free and open source IDE extension that identifies and catches bugs and vulnerabilities as you code, directly in the IDE. Install from your favorite IDE marketplace today.

  • GitHub repo Jocko

    Kafka implemented in Golang with built-in coordination (No ZK dep, single binary install, Cloud Native)

    Project mention: Which library/project do you wish was ported to golang? | reddit.com/r/golang | 2022-01-09
  • GitHub repo torrent

    Full-featured BitTorrent client package and utilities

    Project mention: Pure Go Torrent Library | news.ycombinator.com | 2022-01-18
  • GitHub repo RxGo

    Reactive Extensions for the Go language.

    Project mention: Six months | reddit.com/r/golang | 2021-08-21
  • GitHub repo archiver

    Easily create & extract archives, and compress & decompress files of various formats

    Project mention: Wormhole-gui 2.2.0 has been released | reddit.com/r/golang | 2021-03-15

    The next major release, v2.2.0, is out now. Most notably, this release replaces mholt/archiver with a custom zip extractor for faster directory receives and smaller binaries, adds settings for controlling advanced wormhole client options and a lot of smaller bug fixes. This release also incorporates the initial support for building on Apple M1 computers (release binaries for that architecture are currently not available though).

  • GitHub repo rtsp-simple-server

    ready-to-use RTSP / RTMP / HLS server and proxy that allows to read, publish and proxy video and audio streams

    Project mention: Looking for fisheye dewarping software (Live / Real Time) | reddit.com/r/selfhosted | 2021-10-29
  • OPS

    OPS - Build and Run Open Source Unikernels. Quickly and easily build and deploy open source unikernels in tens of seconds. Deploy in any language to any cloud.

  • GitHub repo liftbridge

    Lightweight, fault-tolerant message streams.

    Project mention: Processing billions of events in real time at Twitter | news.ycombinator.com | 2021-11-15

    This is basically an ad for GCP right?

    That said, it looks like Kafka is by far and away the way to handle persistent logs/events at scale. AFAIK a company here in Japan called LINE has all their messaging flowing through a large kafka cluster themselves.

    Wonder if anyone is running large NATS Jetstream[0]/Liftbridge[1] or Pulsar[2] (yahoo runs those) clusters. I guess Pulsar might be #2 in terms of adoption at large scale?

    [0]: https://docs.nats.io/jetstream/jetstream

    [1]: https://liftbridge.io/

    [2]: https://pulsar.apache.org/

  • GitHub repo saw

    Fast, multi-purpose tool for AWS CloudWatch Logs

    Project mention: This cloudwatch UI sucks | reddit.com/r/aws | 2021-05-28

    Also, for something closer to tail, check out: https://github.com/TylerBrock/saw

  • GitHub repo csvutil

    csvutil provides fast and idiomatic mapping between CSV and Go (golang) values.

  • GitHub repo MovieNight

    Single instance video streaming server with integrated chat.

    Project mention: Moving my home media library from iTunes to Jellyfin and Infuse | news.ycombinator.com | 2021-06-10

    Jellyfin supports "Watch parties" which I've used for movie nights in the past. It works well enough.

    But if you want this going real-time and continuously it sounds like you want more of an RTMP stream setup. I recommend MovieNight[0] but you can handle it natively in Nginx I think. Then it's just a matter of setting up OBS[1] or something similar to stream to it and you can do whatever you want.

    [0] https://github.com/zorchenhimer/MovieNight

  • GitHub repo euterpe

    Self-hosted music streaming server 🎶 with RESTful API and Web interface. Think of it as your very own Spotify! ☁️🎧

    Project mention: Is there any "Spotify-like" self-hosted music streaming software? | reddit.com/r/selfhosted | 2021-12-11
  • GitHub repo machine

    Machine is a zero dependency library for highly concurrent Go applications. It is inspired by errgroup.Group with extra bells & whistles (by autom8ter)

    Project mention: Machine(v2): A zero dependency library for highly concurrent Go applications | reddit.com/r/golang | 2021-02-24

    Give it a Like

  • GitHub repo mediadevices

    Go implementation of the MediaDevices API.

    Project mention: Resources for understanding Pion/WebRTC? | reddit.com/r/golang | 2021-12-05

    I use the pion/mediadevices package to obtain the screen of a Raspberry Pi as a video stream and then I use pion/webrtc to share that to a web server.

  • GitHub repo tstream

    Live streaming from your terminal

    Project mention: TStream - Live streaming from your terminal | reddit.com/r/commandline | 2021-08-30

    Yes, this come with a front-end too. By default it stream to https://tstream.club

  • GitHub repo rtp

    A Go implementation of RTP

    Project mention: An Introduction to WebRTC Simulcast | news.ycombinator.com | 2021-09-20
  • GitHub repo sseserver

    :surfer: High-performance Server-Sent Events endpoint for Go

    Project mention: What's the best way to wireless send a file from an Android/iOS App to a Windows PC app? | reddit.com/r/AskProgramming | 2021-04-12
  • GitHub repo go-m3u8

    Parse and generate m3u8 playlists for Apple HTTP Live Streaming (HLS) in Golang (ported from gem https://github.com/sethdeckard/m3u8)

    Project mention: AV1 live streaming with m3u8/HLS? | reddit.com/r/AV1 | 2021-04-27

    Apple is a part of AOMedia now. I think it will happen eventually. Also HLS has an IETF entry (RFC 8216).

  • GitHub repo beneath

    Beneath is a serverless real-time data platform ⚡️

    Project mention: Analyzing the r/wallstreetbets hivemind — August 2021 | dev.to | 2021-09-08

    If you’re interested, here’s the raw Reddit data, my data pipeline, the derived data, and my Jupyter notebook. I’m using Beneath, an open data platform I’m building, to stream and save the data.

  • GitHub repo jx

    json encoding and decoding (by go-faster)

    Project mention: go-faster/jx: lightweight simplified jsoniter fork | reddit.com/r/golang | 2022-01-08
  • GitHub repo gosd

    A library for scheduling when to dispatch a message to a channel

  • GitHub repo cli

    Command-line tools for YoMo. (by yomorun)

    Project mention: Streaming Image Recognition by WebAssembly and Tensorflow | dev.to | 2021-06-27

    Or, you can download the pre-built binary tarball yomo-v0.0.5-x86_64-linux.tgz.

  • GitHub repo bot_box

    Project mention: Small and simple internet-controlled robot. | reddit.com/r/robotics | 2021-12-29
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 2022-01-18.

Go Streaming related posts


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

Project Stars
1 Pion WebRTC 8,563
2 Centrifugo 5,742
3 Jocko 4,490
4 torrent 4,172
5 RxGo 3,961
6 archiver 3,439
7 rtsp-simple-server 2,296
8 liftbridge 2,193
9 saw 1,174
10 csvutil 656
11 MovieNight 479
12 euterpe 371
13 machine 349
14 mediadevices 326
15 tstream 201
16 rtp 182
17 sseserver 79
18 go-m3u8 79
19 beneath 63
20 jx 36
21 gosd 18
22 cli 5
23 bot_box 2
Find remote jobs at our new job board 99remotejobs.com. There are 29 new remote jobs listed recently.
Are you hiring? Post a new remote job listing for free.
Less time debugging, more time building
Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.