Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
- Official: Documents, Wiki, Talks
- Go Developer Roadmap Roadmap to becoming a Go developer
- Ultimate Go study guide, with heavily documented code and programs analysis, all in 1 place
- Effective Go - 中英双语版
- Go Code Review Comments: This page collects common comments made during reviews of Go code, so that a single detailed explanation can be referred to by shorthands. This is a laundry list of common mistakes, not a comprehensive style guide.
- Go-advices List of advices and tricks for Go ʕ◔ϖ◔ʔ
- uber-go/guide The Uber Go Style Guide.
- ⭐The Go Programming Language - zh-CN, by gopl-zh
- Go Web 编程: A golang ebook intro how to build a web with golang
- go-perfbook - zh-CN This document outlines best practices for writing high-performance Go code. The first sections cover writing optimized code in any language. The later sections cover Go-specific techniques.
- Go 语言高性能编程: high performance coding with golang(Go 语言高性能编程,Go 语言陷阱,Gotchas,Traps)
- philosophy
- What Go values look like in memory?: This post is about basic types, structs, arrays, and slices.
- ⭐Go 语言设计与实现:本书的主要内容可以分成四个主要部分,分别是编译原理、运行时、基础知识和进阶知识,这四部分几乎可以覆盖 Go 语言从编译到运行的方方面面,让我们对 Go 语言有更加整体和深刻的认识。
- golang-notes Go source code analysis(zh-CN)
- Go 语言原本: 一份不太简短的源码研究 - 在线阅读
- Go1.5源码剖析
- Gorilla Web Toolkit, Gorilla is a web toolkit for the Go programming language that provides useful, composable packages for writing HTTP-based applications.
- GopherJS compiles Go code (golang.org) to pure JavaScript code. Its main purpose is to give you the opportunity to write front-end code in Go which will still run in all browsers.
- torrent-client Tiny BitTorrent client written in Go. Read the blog post: https://blog.jse.li/posts/torrent/
- errors: Simple error handling primitives
- go-lua is a port of the Lua 5.2 VM to pure Go. It is compatible with binary files dumped by luac, from the Lua reference implementation.
- LogrusLogrus is a structured logger for Go (golang), completely API compatible with the standard library logger.
- gogf/gf GoFrame is a modular, full-featured and production-ready application development framework of golang. Providing a series of core components and dozens of practical modules, such as: cache, logging, containers, timer, resource, validator, database orm, etc. Supporting web server integrated with router, cookie, session, middleware, logger, configu… https://goframe.org
- ray A fast and simple framework for building and running distributed applications. Ray is packaged with RLlib, a scalable reinforcement learning library, and Tune, a scalable hyperparameter tuning library. https://ray.io
- go-micro A Go microservices development framework https://go-micro.dev
- beego is used for rapid development of RESTful APIs, web apps and backend services in Go. It is inspired by Tornado, Sinatra and Flask. beego has some Go-specific features such as interfaces and struct embedding.
- gin is a web framework written in Go (Golang). It features a martini-like API with performance that is up to 40 times faster thanks to httprouter. If you need performance and good productivity, you will love Gin.
- iris is a fast, simple yet fully featured and very efficient web framework for Go.
- pixel A hand-crafted 2D game library in Go
- ebiten A dead simple 2D game library in Go https://ebiten.org/
- gozelda An implementation of a GameBoy era zelda game using Go and Ebiten
- Korok is a free lightweight, cross-platform, component-based 2D game engine written in Golang and released under the zlib license. Greatly inspired by bitsquid blog.
- oak A pure Go game engine
- G3N (pronounced "gen") is an OpenGL 3D Game Engine written in Go. It can be used to write cross-platform Go applications that show rich and dynamic 3D representations - not just games. A basic integrated GUI framework is provided, and 3D spatial audio is supported through OpenAL.
- agones, open match
- Pitaya is an simple, fast and lightweight game server framework with clustering support and client libraries for iOS, Android, Unity and others through the C SDK. It provides a basic development framework for distributed multiplayer games and server-side applications.
- Nakama: Distributed server for social and realtime games and apps.
- goworld: Scalable Distributed Game Server Engine with Hot Reload in Golang
- leaf: A pragmatic game server framework in Go (golang).
- Nano is an easy to use, fast, lightweight game server networking library for Go.
- gonet - deprecated, gonet2 - inactive
- 发行闭源go包的办法:http://www.golangtc.com/t/540eaa6e320b527a3b000161
- 主要思想是将.a和.go文件放在GOROOT下冒充系统库,因为系统库不会主动编译。
- 但其中要注意,.go文件必须定义外部使用的接口,即大写开头的变量和方法,内容可以为空。
- 交叉编译go目标代码举例:
> CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o bin/main src/main/main.go
- 其中参数可选:
OS ARCH OS version linux 386 / amd64 / arm >= Linux 2.6 darwin 386 / amd64 OS X freebsd 386 / amd64 >= FreeBSD 7 windows 386 / amd64 >= Windows 2000
- 其中参数可选:
- 为什么 Go 语言没有泛型
- Awesome Go: A curated list of awesome Go frameworks, libraries and software
- Golang从入门到跑路: 🌷 awesome awesome go, study golang from basic to proficient
- Go Developer Roadmap's Resources
- Go Patterns Curated list of Go design patterns, recipes and idioms http://tmrts.com/go-patterns