Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure. Learn more →
Top 23 Golang Open-Source Projects
-
Project-based learning — Explore the Project Based Learning repository
-
InfluxDB
InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
-
Huge Open-Source Community: Check out projects on Awesome Go — you'll find everything from web frameworks, CLI tools, machine learning, and more.
-
ollama
Get up and running with Llama 3.3, DeepSeek-R1, Phi-4, Gemma 3, Mistral Small 3.1 and other large language models.
Project mention: Summarization experiments with Hugging Face Transformers - part 1 | dev.to | 2025-07-14Now, I can't copy the YouTube video descriptions verbatim for SEO purposes: search engines don't like duplicate content. The obvious solution is to do some kind of summarization. First of all, I always use whisper and proofread the SRT file containing the recognized audio before uploading it to YouTube. I then copy the SRT file verbatim in an LLM chat, in chunks, and ask ChatGPT to generate a summary once I say so. This last step is tedious and you always rely on a SaaS. Some alternatives include the use local AI models via Ollama, or more specialized software that can run different tasks besides text generation.
-
> I didn't realize how important order was to type inference.
I was unclear, I'm afraid. You can reorder the type parameters, it just changes which of them you need to specify: https://go.dev/play/p/oDIFl3fZiPl
The point is that you can only leave off elements from the end of the list, to have them automatically inferred.
> Are there any real packages out there using these techniques?
I think so far, the usage of generics for containers in Go is still relatively sparse, in public code. I think in part that is because the documentation of how to do that is relatively sparse. That is part of the motivation for the post, to have a bit of somewhat official documentation for these things, so they become more widely known.
The standard library is just starting to add generic containers: https://github.com/golang/go/issues/69559 And part of that is discussing how we want to do things like this: https://github.com/golang/go/issues/70471
That being said, I have used the pointer receiver thing in my dayjob. One example is protobuf. We have a generic helper to set a protobuf enum from the environment. Because of how the API was designed, that required a pointer receiver constraint.
-
union
The trust-minimized, zero-knowledge bridging protocol, designed for censorship resistance, extremely high security, and usage in decentralized finance. (by unionlabs)
Stars: 29318 (1,258 stars today today) Author: unionlabs View Project
-
Moby
The Moby Project - a collaborative project for the container ecosystem to assemble container-based systems
Project mention: Docker Engine v28: Hardening Container Networking by Default | news.ycombinator.com | 2025-05-12Docker networking defaults have been tightened up but per https://github.com/moby/moby/issues/22054#issuecomment-28714...:
the default binding address is still 0.0.0.0.
There are now rules in raw-PREROUTING to drop packets sent from outside the host to container addresses, and to ports mapped to the loopback address. Rules in the filter-FORWARD chain no longer depend on its default policy.
-
Project mention: Self-hosting like a final boss: what I actually run on my home lab (and why) | dev.to | 2025-06-19
Caddy: web server with automatic HTTPS
-
Stream
Stream - Scalable APIs for Chat, Feeds, Moderation, & Video. Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.
-
act | Github
-
Project mention: Show HN: Pangolin – OSS tunneled reverse proxy (self-hosted Cloudflare Tunnels) | news.ycombinator.com | 2025-07-10
The official traefik v3.4.4 amd64 binary from Github is only 207MB.
https://github.com/traefik/traefik/releases/expanded_assets/...
-
Project mention: Why Clean Architecture Struggles in Golang and What Works Better | dev.to | 2024-11-04
When designing a Go project, look to real-world examples like Kubernetes, Vault and the Golang Standards Project Layout. These showcase how powerful Go can be when the architecture embraces simplicity over rigid structure. Rather than trying to make Go fit a Clean Architecture mold, embrace an architecture that’s as straightforward and efficient as Go itself. This way, you’re building a codebase that’s not only idiomatic but one that’s easier to understand, maintain, and scale.
-
rclone
"rsync for cloud storage" - Google Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Wasabi, Google Cloud Storage, Azure Blob, Azure Files, Yandex Files
Project mention: Two guys hated using Comcast, so they built their own fiber ISP | news.ycombinator.com | 2025-07-14Just offering some advice if you aren't aware. If you are, freely ignore.
For convenience, the rclone tool is nice for most cloud storage like google and stuff that make rsync annoying[0]
rsync also offers compression[1], and you might want to balance it depending if you want to be CPU bound or IO bound. You can pick the compression and level, with more options than just the `-z` flag. You can also increase speed by not doing the checksum, or by running without checksum and then running again later with. Or some intervaling like daily backups without and monthly you do checksums.
If you tar your files up first I have a function that is essentially `tar cf - "${@:2}" | xz -9 --threads $NTHREADS --verbose > "${1}"` which uses the maximum `xz` compression level. I like to heavily compress things upstream because it also makes downloads faster and decompression is much easier than compression. I usually prefer being compute bound.
Also, a systemd job is always nice and offers more flexibility than cron. It's what's helped me most with the wack-a-mole game. I like to do on calendar events (e.g. Daily, Weekly) and add a random delay. It's also nice that if the event was missed because the machine was off it'll run the job once the machine is back on (I usually make it wait at least 15 minutes after machine comes online).
[0] https://rclone.org/
[1] https://unix.stackexchange.com/a/292020
-
Gitea
Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD
As I mentioned in a previous post - you can use "git" without Github by hosting an instance of the open-source Gitea service.
https://github.com/go-gitea/gitea
-
Project mention: 6 Open-Source Firebase Alternatives for Self-Hosting and Data Control | dev.to | 2025-06-09
4. PocketBase
-
alist
🗂️A file list/WebDAV program that supports multiple storages, powered by Gin and Solidjs. / 一个支持多存储的文件列表/WebDAV程序,使用 Gin 和 Solidjs。
Project mention: This Month in Solid #8: Meta RFC, 1.9.0 and SolidHack begins 😎 | dev.to | 2024-10-02alist, A file list program that supports multiple storages, powered by Gin and Solidjs
-
-
The Cobra package is designed for building modern CLI applications. It supports subcommands, nested flag sets, command aliases, and generates help text automatically. It’s especially useful for CLI tools with multiple commands and a deeper structure.
-
Project mention: Backlog.md – CLI that auto-generates task files (took my Claude success to 95 %) | news.ycombinator.com | 2025-07-06
-
Gormigrate is a migration library built specifically for GORM, a popular ORM for Go. If your project already uses GORM for database operations, Gormigrate is a natural fit, letting you define migrations in Go code alongside your models.
-
You might check out https://www.photoprism.app/
-
⭐ Fiber on GitHub (35k+ stars)
-
Milvus
Milvus is a high-performance, cloud-native vector database built for scalable vector ANN search
Project mention: What I Learned About Vector Databases When Building Semantic Search | dev.to | 2025-07-06Kubernetes Operators: Milvus and Zilliz Cloud Helm charts simplified provisioning. Weaviate required manual StatefulSets.
-
Step 4:Install Docker Compose: Now we install Docker Compose using the command: sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" \ -o /usr/local/bin/docker-compose
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Golang discussion
Golang related posts
-
Two guys hated using Comcast, so they built their own fiber ISP
-
Local Chatbot RAG with FreeBSD Knowledge
-
Introducing AGAI
-
Database Schema Migration Cheatsheet with golang-migrate/migrate
-
JuiceFS Community 1.3: Python SDK, Faster Backup, SQL & Windows Optimizations
-
Show HN: Live streaming for CUA models using WebRTC (OSS, Apache 2.0)
-
WebAssembly: Yes, but for What?
-
A note from our sponsor - Stream
getstream.io | 14 Jul 2025
Index
What are some of the best open-source Golang projects? This list will help you:
# | Project | Stars |
---|---|---|
1 | project-based-learning | 234,638 |
2 | go-formatter | 147,067 |
3 | ollama | 145,951 |
4 | go | 128,800 |
5 | union | 71,199 |
6 | Moby | 70,070 |
7 | Caddy | 65,420 |
8 | act | 64,350 |
9 | traefik | 55,501 |
10 | golang-standards/project-layout | 53,030 |
11 | rclone | 51,481 |
12 | Gitea | 49,562 |
13 | pocketbase | 48,940 |
14 | alist | 48,569 |
15 | v2ray-core | 46,172 |
16 | cobra | 41,090 |
17 | cli | 39,805 |
18 | GORM | 38,514 |
19 | PhotoPrism | 37,851 |
20 | Fiber | 37,103 |
21 | Milvus | 35,892 |
22 | Docker Compose | 35,772 |
23 | LeetCode-Go | 33,581 |