Go resource sorting, here is what you want

Time:2019-12-27

Well, the second best language in the world, here is what you may want

Stable update on GitHub, feel good, please order a star ❤

If you want to share, please keep the source. Thank you

Original address: https://shockerli.net/post/go

GitHub: https://github.com/shockerli/…


Official website: https://golang.org

Domestic official website image (visit fast ~): https://golang.google.cn

GitHub: https://github.com/golang/go

Wiki: https://github.com/golang/go/…

Guiding principle

  • Simplicity

    Complexity makes readable programs unreadable, and complexity ends many software projects.

  • Readability

    The code is for people to see, the code is longer than writing. The program must be maintainable, which is the first step.

  • productivity

    With a large number of tool sets and basic libraries, most of the work can be easily and conveniently completed.
    The compilation speed is fast enough and the dynamic language is efficient, but it will not face the problem of unreliable dynamic language.
    With its own programming specification, it makes the team code consistent, and also helps developers find and avoid potential errors.

Awesome

  • GitHub Topic for Go
  • Awesome Go
  • Golang open source projects – Chinese version of awesome go with description
  • Awesome go storage – go storage related open source projects
  • Awesome go China – an open source project dedicated to Chinese writing
  • Go patterns – design patterns for go versions
  • Data structure and algorithm of go algorithms
  • Go learning road – go learning materials collection
  • Go developer Roadmap

Daniel

Big bull in go language, or organization of excellent go projects

  • Mattn – hundreds of go projects, high quality projects
  • Unknwon – gogs / macaron, translator of the way to go
  • Jinzhu – Gorm / QOR and other authors
  • Valyala – fasthttp / fastjson and other authors
  • Vmihailenco – go redis / go PG and other authors
  • By kataras – Iris
  • bep
  • spf13
  • Uber – Open Source Software at Uber
  • Gorilla web toolkit
  • Stretchr – Tame your unstructured data
  • Containous

File

  • Official Guide to go
  • Advanced programming in go language
  • Go expert programming
  • Go programming language
  • Golang standard library document (official / Chinese)
  • Go language standard libraryOnline reading
  • The way to go in Chinese
  • Go language Bible (Chinese version)
  • Getting started with go
  • Go practical development
  • Go web application development
  • Go learning skills tree
  • Effectiveness go programming
  • Notes on go language grammar
  • Go language learning materials and community index
  • Go database/sql tutorial
  • Go command tutorial
  • In depth analysis of go
  • Go language blog practice
  • Learning the go language
  • Go night reading – go standard package, open source project source code reading and explanation
  • GO2 Programming Guide
  • Go database / SQL tutorial – go database / SQL development tutorial
  • Go web examples – go web development examples
  • Go assembly – introduce go assembly functions with examples
  • Ultimate go – the ultimate go learning guide with a large amount of documented code and program analysis

guide

  • Uber Go Style Guide
  • Go programming language specification
  • Effectiveness go programming
  • Go Code Review Comments

Article

  • Go language lovers weekly
  • Go’s 50 degree gray: pitfalls and common mistakes for new developers of golang
  • Performance optimization of Go program and application of pprof
  • GOPs – go language program viewing and diagnostic tools
  • Go source code analysis — how http. Listenandserve() works
  • Guide to the use of goconvey framework
  • Guide to the use of gosstub framework
  • Guide to using gomock framework
  • Monkey framework guide

Paid tutorials

  • Building enterprise level restful API service based on go language – Nuggets
  • Go language core 36 – geek time

Finished product project

  • Studygolang – go language Chinese net
  • Hugo – static site builder
  • NoisyNatural synergyInstant messaging solutions for enterprises
  • Mkcert – a tool for generating local HTTPS encryption certificates
  • Rainbow – Open Source PAAS based on docker, kubernetes and other container technologies
  • NYADB2-The relational database implemented by go is worth learning
  • EiBlog – domesticBlog
  • Pan light – unlimited Baidu online disk client, developed based on go + Qt5

Learning project

  • 1m go WebSockets – this project demonstrates how to write a go that can provide more than a millionwebsocketsConnect and run servers with memory less than 1GB
  • Go by example – learn go by example

Open source class library

frame

  • Macaron – a go web framework with high productivity and modular designdomestic
  • Beego – an open source framework that uses go thinking to help you build and develop go applicationsdomestic
  • Gin – lightweight web framework
  • Iris – Web development framework
  • Revel
  • echo
  • chi
  • Faygo – domestic
  • Teleport socket framework
  • GoFrame – domestic
  • QOR – series application development component package
  • Buffalo
  • DotWeb – domestic
  • REST Layer – REST API framework
  • Honeytrap
  • Ponzu
  • utron
  • muxie
  • Go admin – a rapid development framework for background management similar to laravel admin

middleware

  • Negroni – Web Middleware
  • CSRF – CSRF Middleware
  • handlers – A collection of useful handlers for Go’s net/http package

Concurrent

  • Sizedwaitgroup – concurrency control
  • concurrent – concurrency utilities

command line

  • Urfave / cli – command line program builder
  • Cobra – command line build package
  • Gotty – command line real time sharing based on Web
  • ProgressBar – output progress bar on terminal
  • Color – command line text color
  • Termui – terminal dashboard
  • Gosu – runs the script with the specified user rights
  • Tui – terminal UI
  • GoTop – top like system monitoring display
  • go-colorable – Colorable writer for Windows
  • Go isatty – TTY environment judgment
  • FZF – file finder on the command line
  • Flaggy – command parameter analysis
  • Go day – day process package
  • Pflag – command line parameter handling
  • Pixterm – plot in command line terminal
  • WTF – a command line information dashboard that can be customized to display content

Route

  • HttpRouter
  • MUX – URL routing and scheduler
  • gocraft/web

network

  • fasthttp– rationet/http10 times faster HTTP Toolkit
  • Resty – HTTP & rest client package
  • DNS – DNS Library
  • Coredns – DNS server
  • Caddy-Web server
  • Roadrunner – PHP application server, process manager, load balancing to replaceNginx + FPM
  • Tr æ FIK – reverse agent & load balancing
  • Goreplay – traffic collection & playback
  • Vegeta – HTTP load measurement tool
  • Hey – web press tool
  • Bombardier – Web piezometric tool
  • P2pspider – seed sniffer
  • GOIM – supporting cluster IM and real-time push service
  • High performance proxy server implemented by proxy – golang
  • Proxypool – collect free agent resources to provide effective IP agent for Crawlers
  • FRP – high performance reverse proxy application for intranet penetration
  • Torrent – BitTorrent related tool library
  • httpteleport – Teleports 10Gbps http traffic over 1Gbps networks
  • Find3 – WIFI device discovery
  • Subfinder – subdomain name discovery tool
  • GGZ – short URL service
  • httpstat

WebSocket

  • Gorilla WebSocket
  • One key command line tool for building websocket server developed by websocked – go
  • Ws – websocket development package
  • Melody – websocket Service Framework

gateway

  • Goku API gateway ce – eolinker open source API gateway

serialize

  • Vmihailenco / msgpack – support for msgpack
  • Go / codec – support msgpack / binc / CBOR / JSON
  • Protobuf – go version of protocol buffers
  • Objx – package to operate map, slice, JSON and other data

RPC

  • Grpc go – grpc official package
  • gorpc
  • Gorilla / RPC – build HTTP based RPC services, such as json-rpc
  • Lile – grpc service building package
  • rpcx
  • Twirp

mail

  • Gomail – mailing package
  • scorredoira/email

news

  • Tinode – instant message server, transmitted through websocket / JSON or grpc / TCP and other protocols
  • NSQ – distributed messaging platform

file

  • Syncthing – file synchronization
  • Fsnotify – file system monitoring tool
  • Gohttpserver – HTTP static file server
  • Xlsx – Excel read write package
  • Excel – 360 open source excel Toolkit
  • Seaweedfs – distributed file system
  • Go fastdfs – distributed file storage service
  • Dragonfly – P2P based distributed file system
  • Filetype – detect file type
  • CAE – Implementation of zip / tar.gz decompression
  • compress – Optimized compression packages
  • Afero – file operation package
  • Fsync – file / directory synchronization
  • filebrowser – Web File Browser

template engine

  • Gotemplatebenchmark – test the performance of each go template engine, including the most complete template engine package
  • Jet – fast
  • Amber – HTML template engine
  • fasttemplate – Simple and fast template engine for Go
  • quicktemplate
  • mustache
  • Ace

text

  • Blackfriday – markdown parser
  • GPY – go language Chinese character to Pinyin tool
  • Html2text – HTML to text
  • Go hashids – go version of hashids
  • Go Pinyin – Chinese pinyin conversion tool go version
  • Mahonia – character set encoding conversion
  • Pangu.go – Pangu version of go, with spaces between Chinese and English
  • goorgeous – A Go ORG syntax parser to HTML
  • Go diff – go version of diff Toolkit
  • Chroma – code syntax highlighting
  • Emoji
  • prose – natural language processing library
  • Minify – Web static resource compression (HTML / JS / CSS / JSON)
  • Lute – structured markdown engine
  • Docx2md convert word to markdown

File

  • swag – Swagger for Go
  • gin-swagger – Swagger for Gin
  • go-swagger – Swagger 2.0 implementation for go

Mathematical calculation

  • Decimal – solve the problem of floating point calculation precision
  • fixed

Date time

  • now
  • When – natural date time analysis

To configure

  • GoDotEnv – .envProfile resolution
  • yaml
  • toml – TOMLParsing & encoding package
  • INI – INIProfile resolution
  • Viper – supportJSON, TOML, YAML, HCL, JavaEtc
  • Multiconfig
  • configor
  • envconfig
  • Confd – configuration management tool

Reptile

  • Crawleb – distributed crawler management platform based on golang, supporting python, nodejs, go, Java, PHP and other programming languages as well as a variety of crawler frameworks
  • Colley – web crawler framework
  • Pholcus – supports distributed high concurrency, heavyweight crawler software
  • go_spider
  • goquery
  • Muffet – site link checker
  • Creeper

Database related

  • GORM

    • Gorm2sql – generate table creation statement according to model struct
  • Xorm – supports mysql, PostgreSQL, SQLite3, and MSSQL
  • GoRose
  • Go-MySQL-Driver
  • sqlx – database/sqlExtension package
  • qb – the database toolkit for go
  • Redis – redis client
  • go-redis
  • Mongo go driver – mongodb’s official go language driver
  • mgo

    • globalsign/mgo – The MongoDB driver for Go
    • MgO use guide
  • amqp – Go client for AMQP 0.9.1
  • xo – a command-line tool to generate Go code based on a database schema or a custom query
  • kingshard – MySQL Proxy
  • Soar – an automated tool for optimizing and rewriting SQL
  • GH OST – GitHub: an open source tool for changing MySQL table structure online
  • Go mssqldb – MSSQL driver
  • PQ – PostgreSQL driver
  • SQLer – write APIs using direct SQL queries with no hassle, let’s rethink about SQL
  • gocraft/dbr
  • Gaea Xiaomi open source database middleware based on MySQL protocol
  • Octosql – SQL query tool supporting multiple databases
  • Goose – database migration tool
  • ent – An Entity Framework For Go

database engine

  • Etcd – kV distributed storage
  • InfluxDB
  • CockroachDB – SQL database
  • Cayley – graph database
  • Radondb – a new generation of distributed relational database based on MySQL
  • Aresdb – Uber open source GPU driven real-time analysis storage & query engine
  • Leveldb – go implementation of leveldb
  • Dgraph – distributed graph database

search

  • Wukong – full text search engine
  • Go elasticsearch – Official es client
  • Elastic – elasticsearch client
  • go-mysql-elasticsearch – Sync MySQL data into elasticsearch
  • GSE go language participle
  • Sego – go Chinese participle
  • Riot – full text search engine

form

  • validator
  • Go tagexpr – byte skipping open source structure label expression interpreter
  • schema – converts structs to and from form values

Auth

  • Caspin – rights control management
  • pam-ussh – Uber’s SSH certificate pam module
  • jwt-go – JWT for Go
  • Sessions – backend session service
  • Securecocookie – Cookie encryption / decryption
  • Goth – Multi-Provider Authentication for Go

cache

  • GCache
  • bbolt – key/value store
  • Go cache – kV memory cache
  • Gomemcache – Memcache client
  • cache2go

picture

  • Barcode – barcode / QR code generator
  • Picfit – image operation, clipping, management server
  • GMFs – image operation, clipping, management server
  • Besticon – favicon service
  • Caire – picture operations Library
  • Imaging – picture operation Library
  • Gocaptcha – verification code generation
  • Go-is-svg – check if it is an SVG picture
  • Identity – generate beautiful random avatars for users based on their IP address, mailbox name and other arbitrary data

Chart

  • Go echarts – echarts chart Library

Build compiling

  • Mage – a Make/rake-like build tool using Go
  • GoReleaser-Go multi platform binaries package and support tools for publishing to homebrew
  • goxc
  • Gometalinter – code quality inspection and analysis tool
  • Task – similar toMakeBuild tools for
  • Gin – Hot compilation tool, which can automatically monitor the changes of files and recompile and restart, so as to facilitate the development and debugging of web applications

debugging

  • go-spew-Variable printing tool
  • Delve-Debug tool
  • Repr – variable printing tool
  • PP – color variable printing tool
  • GOPs – Google’s official Go program monitoring and debugging tool
  • pprof
  • Go callvis – visual call graph of Go program
  • Q – automatically print variable types and format output
  • Litter
  • Errcheck – detect unhandled errors
  • Staticcheck – a series of go code static analysis tools

test

  • Goconference – unit test framework with web interface
  • Gomock – Google’s mock test framework
  • GoStub
  • Monkey
  • Ginkgo – BBD test framework
  • Fperf – pressure measuring tool
  • gocheck
  • Testify
  • gotests – Generate Go tests from your source code
  • TestSql – generate test data based on SQL creation statement
  • httpmock – HTTP Mock
  • Goblin BDD test framework
  • Faker – Struct Data Fake Generator
  • Go tprof – package test report generation tool

error handling

  • errors
  • errorx

security

  • Kunpeng – Open Source POC detection framework

UUID

  • Go.uuid – UUID Library
  • Seqdistributed ID generation service implemented by SVR – go + MySQL
  • cpuid – CPU feature identification for Go
  • Google / UUID – Google’s open source UUID package
  • gofrs/uuid
  • snowflake – Twitter snowflake IDs

Log & collection

  • Logrus – logging package
  • zerolog
  • Logging package developed by zap – Uber
  • Seelog
  • Logkit – an open source log collection tool of qinniu
  • Gogstash – log collector similar to logstash
  • lumberjack

Monitor

  • Openfalcon – Xiaomi open source monitoring system
  • Prometheus – monitoring system
  • Grafana – Analysis and monitoring platform, supporting data sources such as graphite, elasticsearch, opentsdb, Prometheus, and influxdb
  • Teaweb – a visual intelligent web server integrating static resources, cache, agent, statistics and monitoring
  • Jaeger – distributed tracking system

statistical analysis

  • Fathom – Website Statistics
  • Signal – Website Statistics

Container technology

  • Rancher – full stack enterprise level container management platform
  • Gorsair
  • docui – TUI Client for Docker

machine learning

  • Goml – Machine Learning Library
  • Golearn – a “out of the box” machine learning library
  • Glow – an easy-to-use distributed computing system
  • Gobot – robot and physical computing language library
  • Olivia – neural network
  • Pico – a pure go face detection library for object detection paper based on pixel strength comparison

algorithm

  • GoDS
  • Dragonboat – multi group raft consensus algorithm library
  • Implementation of gorang LRU LRU algorithm

data structure

  • go-datastructures
  • Play with data structures – go language implementation version of play with data structures
  • HashMap
  • SipHash – SipHash-2-4

Dependency injection

  • Wire
  • dig
  • Fx

JSON

  • Gjson – JSON interpreter
  • Sjson – JSON modification tool
  • fastjson – fast JSON parser and validator for Go
  • jsonparser
  • ffjson
  • JSON iterator – Didi’s open source JSON parser

Dependency management

  • goproxy.ioGOPROXYAgency service
  • Goproxy.cn – more suitable for domestic users
  • Gopm – go package management tool
  • Vendor – vendor package management tool
  • GOM – package version management tool

Micro service

  • Istio [Chinese document] – cross language microservice framework
  • goa
  • Micro – microservice tools
  • Go Kit – go microservice Toolset
  • Gokit cli – go kit scaffolding
  • gogo
  • Go-Chassis
  • Go micro – microservice framework
  • Kite

Continuous integration / deployment

  • CDs – continuous integration services
  • gopub
  • CodePub
  • Syncd – code deployment tool
  • Drone – docker based continuous publishing platform
  • Cyclone – Continuous Integration & release platform

Git

  • Gogs – git server similar to gitlab
  • Gitea – git server forked out by gogs
  • Git operation implemented by go git – go
  • gitin – commit/branch/status explorer for git
  • Hub – GitHub command line tool
  • Git-o-matic – a tool for monitoring git warehouse changes and automatic pull / push

Current limiter

  • Tollbooth – Simple middleware to rate-limit HTTP requests
  • ratelimit
  • RateLimit
  • go-rate
  • Circuit – fuse

interpreter

  • participle-General custom syntax parsing package
  • GopherLua – VM and compiler for Lua in Go
  • go-lua – A Lua VM in pure Go
  • PHP Parser – PHP ast syntax parsing
  • Otto – Javascript interpreter
  • goja – ECMAScript 5.1(+) implementation in Go
  • gpython – Python Interpreter on Go
  • starlark-go – Starlark in Go
  • avo – Generate x86 Assembly with Go
  • Wagon – webassembly interpreter
  • Gopherjs – compile go code into JavaScript code
  • Yaegi – go language interpreter

Custom interpreter

  • Math engine – a math expression parsing and computing engine library implemented by go, which is very suitable for learning syntax parsing
  • Gval – expression evaluation
  • expression-parsing
  • goexp – Recursive descent expression parser in Go
  • Goastch – go ast syntax parsing
  • tdop
  • swallow
  • Anko
  • Expr – compile & execute expressions in strings
  • Tengo – scripting language written in go
  • Language written by V – go
  • kumarUjjawal/bison

query language

  • Graphql implemented by graphql – go
  • RQL – rest resource query language
  • Thunder – graphql service building framework

Game related

  • Nano – game development framework
  • Leaf
  • einx

Desktop development

  • Lorca – write HTML5 desktop program with go, rely on Chrome for UI rendering, but do not package chrome into application
  • WebView – build cross platform desktop software with go
  • walk – Windows GUI toolkit
  • go-gtk – Go bindings for GTK
  • ui – Platform-native GUI library for Go
  • fyne – Cross platform GUI in Go based on Material Design
  • go-gl – Go bindings for OpenGL (generated via glow)
  • Therecipe / Qt – QT based cross platform UI package

Task / timer

  • Grift – Go based task runner

WeChat

  • Webapp – wechat applet SDK

Unclassified

  • Robotgo – golang cross platform automation system, control keyboard and mouse bitmap and read screen, window handle and global event monitoring
  • cron – a cron library for go
  • goCron – A Golang Job Scheduling Package
  • Com – Toolkit
  • 140 PHP function packages implemented by php2go – go
  • gommon – Common packages for Go
  • Go Report Card-Go project quality analysis report tool
  • i18n – i18nMultilingual Toolkit
  • Paginator – paging tool
  • gls – Goroutine local storage
  • Go version – version number comparison
  • reflect2 – reflect api without runtime reflect.Value cost
  • mapstructure – Go library for decoding generic map values into native Go structures
  • Copy values between copier – struct
  • Cast – data type conversion
  • Metabolize – Decodes HTML meta tags into a Golang struct
  • OTP – one time password utilities
  • Feeds – RSS content generation
  • Gofeed – RSS & atom feeds content parsing
  • Wechat go – go implementation of wechat web API
  • Misspell – misspelled English words
  • Standard go project layout – example of go project directory structure
  • Crdt – Implementation of the final consistency algorithm of crdt (convert and command replicated data types)
  • script – Making it easy to write shell-like scripts in Go
  • Revive – Code Check Analysis

tool

  • Goenv – go version management
  • GoLand – ide software
  • IntelliJ series software go language plug-in

Resource station

  • Go language Chinese network
  • GoCN

Thank you for your reading. I think the content is good. Please give me a compliment

Original address: https://shockerli.net/post/go-awesome/