Go
Learning Resources
- Google Go Style guide
- Cheatsheet
- Tour
- GoDoc - Go Package Search & Docs (note that this can also be run locally
go doc fmt.Printf
orgodoc -http=:8001
for the full docs) - 10 Top Golang Tutorials
- Go by Example
- Operation Go
- Go Introductory Tutorials
- Roguelike Game
- Hey
- Ultimate Setup for Your Next Golang Project ((debate)[https://news.ycombinator.com/item?id=21725869])
- Jon Calhoun
- Learn Go
- The Evolution of a Go Programmer
Comments
- "The main trouble I find with Javascript is just how much variation of the language there is. You could look at many peopleโs solution to a problem and each one will be vastly different. Generally in GO most peopleโs solutions would be similar and understandable. So for me that makes GO easier to learn as you wonโt go off on lots of different tangents."
Debugger
Concepts
IDEs / Tooling
Package Layout, Management, etc
- Getting started with Go guide
- Getting started with Go
- Standard Go Project Layout
- Package Management & Vendoring
- Everything you need to know about Packages in Go
Backend
- Ziggurat - Stream Processing made easy
- GraphQL Web App using Go & React
- Go generate based graphql server library
- Reddit's Baseplate implemented in Go
- genqlient: a truly type-safe Go GraphQL client
- casdoor - UI-first centralized authentication / Single-Sign-On (SSO) platform based on OAuth 2.0
Logging
- go-logger
- go-log-viewer
- open-telemetry - a set of APIs to directly measure performance and behavior of your software and send this data to observability platforms
GUI / TUI
- List of GUI Projects / Resources
- Fyne
- Go Flutter Desktop
- Space Invaders game
- FyneTerm - Fyne based terminal emulator
- Simple Chess UI / (video)
- JSON2App - JSON to a form
- Fyne Calculator
- gioui.org - Gio implements portable immediate mode GUI programs in Go
- verlet - build and animate objects according to verlet physics
- make an animated emoji mosaic from a source image
Graphs
Web Frameworks / Apps
- pagoda - full-stack web development starter kit
- kyoto - frontend-like components experience to the server
- domui - DOM UI framework
- roxy - the frontend proxy
- go-ssc - Go Server Side Components
- urlsh - a URL shortener application with a front-end
- echo - High performance, minimalist Go web framework
- Wails - framework for building desktop applications using Go & Web Technologies
- Caddy
- ion - self-hosted conferencing software with single command deploy
- Gin
- Fiber
- ["Building a web app with Gin and React"])(https://hakaselogs.me/2018-04-20/building-a-web-app-with-go-gin-and-react)
- duit Simple money tracker, built with Go
- OpenFaaS
- Nitro
- Confetti - web application framework with an expressive, elegant syntax
- bb - bulletin board for pubnix
- go-see - spec-compliant HTML5 server-sent events library
- leaked-password - pre-generated bitset DB includes 6 Million leaked passwords stored in bloom filter bitset
Messaging
- gotify/server - simple server for sending and receiving messages (in real time per websocket)
- Berty - secure peer-to-peer messaging app that works with or without internet access, cellular data or trust in the network
- Xray-core
- Jackal
- Lignum - A distributed message queue
- Centrifugal - scalable real-time messaging server
- ergo - create an OTP-designed application
Robotics / IoT
Terminal Utilities
- cocert - split and distribute your private keys securely amongst untrusted network
- goalive
- Tcell
- Termbox
- Color
- Emoji
- Glow
- pTerm - platform independent way to create beautiful terminal output
- rf - an experimental refactoring tool
- crytgo - track your crypto portfolio straight from your terminal
- Chaakoo - wrapper over TMUX that can create sessions, windows and panes from a grid based layout
Networking
- ngrok.space (reddit)
- toxiproxy - framework for simulating network conditions
- Guardian - Open Source Web Application Firewall
- Inlets
- Molecule - parsing protobufs in an efficient and zero-allocation manner
- Torrent client walkthough
- OpenID Connect SDK
- ultimate service
- ratelimiter - generic concurrent rate limiter library based on sliding-window rate limiting algorithm
Style Guides
CLI / TUI
- slides - slides in your terminal
- sttr - quickly run various transformation operations on the string
- gitty - CLI helper for git projects
- dasel - query and modify data structures using selector strings
- gnark - fast zk-SNARK library that offers a high-level API to design circuits
- shove - push notification service
- dnsbin2 - pastebin over DNS
- chrono - scheduler library that lets you run your tasks and code periodically
- gronx - cron expression parser
- photon - Fast RSS reader as light as a photon
- ant - a web crawler for Go
- typer - typing test in your terminal
- GChalk - terminal color library
- calc
- Cobra
- Cloudflare API
- Podcast Player
- Trubka - Swiss army CLI knife for Apache Kafka
- pbgopy - pbgopy acts like pbcopy/pbpaste but for multiple devices
- Minict - Minict is a minimal container runtime written in Go. It was made mainly for learning purposes and is intended to be as simple as possible.
- queryCSV
- Gomodoro - CLI application for those interested in the Pomodoro technique
- golangci-lint - a fast Go linters runner
- pitop - Raspberry Pi terminal based activity monitor
- ticker - terminal stock watcher and stock position tracker
- tz - time zone helper
- agogo - reimplementation of AlphaGo in Go (specifically AlphaZero)
- bit - is an experimental modernized git CLI built on top of git that provides happy defaults and other niceties discussion
- germanium - an alternative to Carbon and Silicon
- libvault - lightweight Hashicorp Vault client
- slides - slides in your terminal
- tsukae - Show off your most used shell commands
- viddy - modern watch command
- exatorrent - self-hostable torrent client
- muster - automate the creation of Must funcs
- JiraCLI - Feature-rich Interactive Jira Command Line
- Simple Matchmaking - Simple rule based matchmaking for your online game with support of Redcon(RESP) protocol.
- patreon-dl - download images of creators you support
- fsweeper - an intuitive and simple file management automation tool
- confetty - confetti (or fireworks) inside your terminal
- arkade - portable marketplace for downloading your favourite devops CLIs and installing helm charts, with a single command
Patterns
Data Structures
Emulators
- Magia - Gameboy Advance emulator
- Chip8 Emulator - chip8.go is a simple Chip8 emulator, compliant with the technical standard laid out in the Cowgod's Manual
API
- websockets - Go implementation of the WebSocket protocol
- liwords-socket - game socket server
- resty - Simple HTTP and REST client library for Go
- notion api
- quartz - simple, zero-dependency scheduling library
Databases
- milvus - vector database built to power embedding similarity search and AI applications
- immudb
- olric - distributed cache and in-memory key/value data store
- etcd
- tstorage - a fast local in-memory/on-disk storage package for time-series data
- ent - an entity framework for Go
- icefiredb - Distributed disk storage system based on Raft and RESP protocol
- plinko - a Fluent State Machine for Go
- db yaml - simple DB using yaml
- ch - very fast data block streaming
- atlas - a database toolkit
Compilers
AWS Integration
Audio / Video
- go-modular - software modular synthesizer with Midi support
- Audio From Scratch With Go: Extracting Breakpoints
- Screen Go
- Alda 2