Skip to content

Go language excellent resource arrangement, to accelerate the implementation of the project

License

Notifications You must be signed in to change notification settings

G-Leopard/go-awesome

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 

Repository files navigation

Go-Awesome

Go Organize excellent language resources to speed up project implementation🏃

Stable update on GitHub, please click star if you feel good ❤️

If you reprint and share, please keep the source, thanks 😆

GitHub: https://github.com/NightKari/go-awesome


Official website: https://golang.org

Domestic official website mirror (quick access): https://golang.google.cn

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

Developer platform: https://go.dev

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

Official Blog: https://blog.golang.org

Guiding Principles

  • Simplicity

    Complexity makes readable programs unreadable, complexity kills many software projects.

  • Readability

    > The code is visible to people and it takes longer to read the code than to write it. Programs need to be maintainable, and that readability is the first step.
    
  • Productivity

    > Most of the work can be done easily and conveniently with numerous tool sets and basic libraries.
    > The compilation speed is fast enough to reach the efficiency of dynamic languages, but it does not have the problem of dynamic languages' unreliability.
    > Self-contained programming specifications that make team code consistent and help developers discover and avoid potential bugs.
    

Awesome

Go-Organization

Guru in the Go language or organization of a good Go project

Big Cow

  • mattn - wrote hundreds of Go projects, rich in high quality projects
  • Unknwon - author of gogs/macaron and other projects, translator of "The Way to Go"
  • Jinzhu - Author of Gorm/QOR etc.
  • valyala - author of fasthttp/fastjson etc.
  • vmihailenco - go-redis/go-pg and other authors
  • kataras - author of iris
  • bep
  • spf13
  • juju
  • tidwall

To Organize

Documentation

Guide

Article

Paid Tutorials

Finished Items

  • Shiori - bookmark management
  • studygolang - Go Language Chinese Network
  • mkcert - Tool to generate a local HTTPS encryption certificate
  • Rainbond - Open source PaaS based on container technologies like Docker and Kubernetes
  • NYADB2 - Relational database implemented by Go, worth learning
  • EiBlog - Blog
  • pan-light - Baidu network disk client with unlimited speed, developed on the basis of Go + Qt5
  • BaiduPCS-Go - Baidu Network Drive Client (command line)
  • daily-warm - Send regular emails to people you care about every day
  • pipe - blogging platform
  • mdr - Markdown reading tool under the command line
  • miniflux - Feed reader
  • golinks - Create custom bookmarks, commands, searches and more
  • Liandi Notes - Application for desktop notes
  • wayback - Website snapshot backup
  • bbs-go - open source community
  • OpenSCRM - Enterprise WeChat traffic management system for private domains based on Go and React
  • answer - Q&A community

Static Site Generator

Learning Content

  • 1m-go-websockets - This project shows how to write a server in Go that has over a million "websockets"-1-GB- server can serve
  • By example - Learn "By example".
  • IAM - Identity and Access Management System (teaching project)
  • 100-Go Mistakes - 100 common Go Mistakes

Open source library

Web Framework

Business Framework

  • YAO - Use JSON to create database models, write API interfaces and describe the application engine of the management background interface
  • GoAdminGroup/go-admin - Rapid development framework for background administration, similar to Laravel-Admin
  • wenjianzhang/go-admin - Background framework based on Gin + Vue
  • gin-vue-admin - Background framework based on Gin + Vue
  • goxygen - A full stack application builder based on Go, React and MongoDB technologies
  • nging - General framework for managing the Go language background
  • snake - Business API framework
  • PocketBase - a single file backend service development framework with background management panel, file and permissions management and built-in SQLite database, using Dart and JS SDK for Rapid supports development of APP

Project Skeleton

DDD Framework

TCP Frame

  • zinx - TCP Concurrent Server Framework

Middleware

  • Negroni - Web middleware
  • csrf - CSRF middleware
  • handlers - A collection of useful handlers for Go's net/http package

Concurrency

Command Line

Parameter Analysis

  • urfave/cli - tool for building command line programs
  • Cobra - command line buildpack
  • flaggy - command parameter analysis
  • pflag - Command line parameter handling
  • kong - command line parsing
  • clop - command line parsing package
  • go-flags - parsing of command line parameters
  • mow.cli
  • go-arg - Parses command line parameters based on structure tag

Output Display

  • progressbar - print a progress bar on the terminal
  • cheggaaa/pb - Terminal progress bar
  • mpb - supports multiple progress bars
  • Color - color of command line text
  • gookit/color - command line color library
  • termui - Terminal Dashboard
  • tui - Terminal UI
  • termenv - Extended ANSI style and color support for terminal applications
  • asciigraph - renders ASCII characters in the terminal
  • spinner - A controller that covers 70+ icons or progress bars
  • tablewriter - Output table content in terminal
  • PIXterm - Drawing in command line terminal
  • WTF - a command line information dashboard that can customize the display content
  • termdash - Dashboard system based on Go Terminal
  • bubbles - TUI components
  • bubbletea - TUI framework
  • PTerm - supports displaying terminal output such as charts, tables, progress bars, trees, etc.
  • Lipgloss - Terminal layout, style
  • Gum
  • glow - Terminal rendering displays markdown
  • [slides] (https://github.com/maaslalani/slides) - Terminal rendering displays markdown
  • tview - Terminal UI
  • ASCIIPlayer - Output image or video via ASCII in terminal, supports PNG, JPEG, GIF, MP4, AVI and other formats
  • go-pretty - terminal rendering table, list, progress bar, etc.

Other

  • gosu - Run scripts with specific user rights
  • gotop - similar top system monitor display
  • go-colorable - Colorable Writer for Windows
  • go-isatty - TTY environment assessment
  • fzf - Terminal fuzzy query artifact, supports multiple platforms
  • go-daemon - daemon process package
  • go-prompt - Interactive input from the command line
  • peco - Interactive filter tool
  • pty - PTY for Go
  • vtclean - Parses plain text from terminal output string
  • Survey - interactive input

Terminal Tools

  • vgrep - grep which supports scroll pagination
  • GoTTY - Real-time sharing via web-based command line
  • Jump - Quickly jump into the directory according to the habit
  • GoFish - A cross-platform software management tool inspired by Homebrew supporting Linux and Windows
  • viddy - Improved watch command
  • miller - a sed, awk, cut, join and sort-like tool for manipulating data based on named indexes
  • assh - SSH extension tool
  • duf - better disk usage tool than df

Redirect

The Internet

  • DNS - DNS library
  • CoreDNS - DNS servers
  • RoadRunner - PHP application server, process manager, load balancer, used to replace "Nginx + FPM".
  • FrankenPHP - PHP application server
  • GoReplay - Traffic capture and replay
  • Sharingan - Didi open source traffic recording and playback tool
  • Glorp - CLI tool for HTTP interception and replay
  • p2pspider - torrent sniffer
  • torrent - BitTorrent related tool library
  • rain - Bittorrent client and library
  • httpteleport - Teleports 10Gbps HTTP traffic over 1Gbps networks
  • FIND3 - WiFi device detection
  • SubFinder - subdomain discovery tool
  • ggz - short URL service
  • httpstat
  • grab - file download
  • go-getter - can download files or directories from different sources using URL as main input form
  • go-netty - network framework
  • gnet - Event driven Go network framework
  • netpoll - Non-blocking I/O Net-Library focused on RPC scenarios
  • httplab - The interactive web server
  • yamux - multiplexers
  • sftp - SFTP support for the "go.crypto/ssh" package.
  • goftp - FTP client
  • evio - Event driven network framework (reactor mode)
  • gaio - Event driven network framework (Proactor mode)
  • httpretty - Issues HTTP requests on the terminal
  • blocky - Block ads as LAN DNS proxy
  • lossy - simulates bandwidth, latency and packet loss for net.PacketConn and net.Conn interfaces
  • go-libp2p - P2P
  • go-ipfs-api - IPFS
  • gomobile-ipfs - Provide IPFS network access support for mobile devices
  • go-multiaddr - multiaddr
  • kcp-go - Reliable UDP communication package
  • gliderlabs/ssh - Just create an SSH server like net/http
  • netaddr - Processing of network addresses
  • sx - command tool for scanning networks
  • echoip - IP address lookup service
  • EasyTCP - TCP server framework
  • GoPacket - network capture packet capture
  • croc - transfer files between two computers
  • cmux - monitor the same port, start multiple log services
  • GeoIP2 Reader for Go - Parsing and reading of MaxMind GeoLite2 and GeoIP2 databases

####LDAP

Network Proxy

  • Caddy - Nginx-like web server
  • Traefik - reverse proxy and load balancing
  • snail007/goproxy - high performance proxy server implemented by golang
  • ProxyPool - Collect free proxy resources to provide effective IP proxy for crawlers
  • frp - A high performance reverse proxy application that can be used for intranet penetration
  • nps - A lightweight, high performance, powerful intranet penetration proxy server
  • Pomerium - identity-based reverse proxy
  • V2Ray
  • V2Fly - Community version of V2Ray
  • Tailscale - WireGuard solution
  • Clash - Multi-platform proxy client supporting multiple protocols
  • elazarl/goproxy - HTTP proxy
  • oxy - Go middleware for HTTP servers and proxies
  • ouqiang/goproxy - Go HTTP(S) proxy library, supports man-in-the-middle proxy to decrypt HTTPS

HTTP Print Test

###HTTP

WebSocket

Instant Messages

  • Centrifugo - Real-time messaging server that can be used in conjunction with application backends written in any language
  • goim - supports clustered IM and real-time push services
  • Tinode - Instant messaging server, transported via protocols like websocket/JSON or gRPC/TCP
  • WebRTC - WebRTC implementation
  • Berty - Secure peer-to-peer communication software
  • Keybase - Instant messaging tool Keybase Full Platform Client

Gateway

Serialization

Unzip

  • snappy - Snappy for Go
  • cae - implement ZIP/TAR.GZ decompression
  • archiver - Unpack archive with multi-format support
  • compress - Optimized compression packages
  • Brotli

RPC

Post Office

Message Queue

  • NSQ - Real-time distributed messaging platform
  • NATS - cloud-native messaging middleware
  • amqp - AMQP 0.9.1 client
  • sarama - Kafka client

Files/Storage

  • MinIO - object storage server
  • rclone - Sync files between different cloud storages
  • Syncthing - File synchronization
  • fsnotify - File system monitoring tool
  • reflex - monitors file changes and executes commands
  • gohttpserver - HTTP static file server
  • XLSX - Excel reading and writing package
  • Excelize - 360 Open Source Excel Toolkit
  • gopdf - PDF generation
  • rsc/pdf - PDF reader
  • SeaweedFS - Distributed file system
  • go-fastdfs - Distributed file storage service
  • Dragonfly - P2P based distributed file system
  • filetype - detect file type
  • Afero - file editing package
  • fsync - file/directory synchronization
  • filebrowser - web file browser
  • Bigfile - file transfer management system
  • filetype - File type and MIME detection
  • go-app-paths - Get directory files across platforms
  • copy - copy folder
  • lakeFS - Git-like file object storage
  • Duplicacy - a lock-free cloud backup tool that supports almost all storage methods
  • CasaOS - family cloud system

Template Engine

Code Generation

Word Processing

Discount

HTML/CSS

Other

  • go-runewidth - character length calculation
  • gpy - Pinyin tool to convert Chinese characters to Go language
  • go-hashids - Go version of Hashids
  • go-pinyin - Go version of Chinese Pinyin conversion tool
  • mahonia - Character set encoding conversion
  • pangu.go - Go version of pangu, add spaces between Chinese and English
  • goorgeous - A Go-ORG syntax parser for HTML
  • sergi/go-diff - Go version of the diff toolkit
  • sourcegraph/go-diff - Go version of the diff toolkit
  • Chroma - Code syntax highlighting
  • syntaxhighlight - code highlighting
  • kyokomi/emoji
  • enescakir/emoji
  • golang/freetype - Freetype font grid
  • prose - Natural language processing library
  • minify - Compression of static web resources (HTML/JS/CSS/JSON/XML/SVG)
  • Inflection - Pluralizes and singularizes English nouns
  • Autocorrect - Automatically add meaningful spaces between Chinese and English and correct capitalization of proper names
  • bleve - modern text indexing
  • etree - XML parsing and generation
  • go-xml
  • Feeds - RSS feed generation
  • gofeed - Content analysis of RSS and Atom feeds
  • Sitemap - sitemap.xml generation
  • yarr - Software for reading RSS
  • gogrep - Browse the Go source code using the syntax tree
  • PipeIt - Text conversion, cleaning and extraction tool
  • regexp2 - Fully functional regular expression engine. If you are not satisfied with the standard library regexp, you can try using Regexp2
  • html2article - html2article implementation based on text density
  • hostctl - hosts command line management tool
  • go-shellwords - parses the fields on the command line
  • woke - Check text files for discriminatory words
  • go-password-validator - password strength validator
  • xurls - Extract URLs from text
  • whatlanggo - Natural Language Recognition
  • go-enry - Detect programming language
  • fuzzy - String fuzzy matching
  • godlp - data desensitization
  • Zoekt - text search engine

Documentation

Mathematical Calculations

  • decimal - Solve the problem of precision of floating point calculation
  • fixed
  • apd - decimal pack
  • mathfmt - Convert LaTeX syntax comments to math formula format
  • q - quantum computer simulator

Appointment Time

  • now
  • when - natural datetime parsing
  • Carbon - Go implementation of the Carbon time processing library
  • strftime - time formatting
  • dateparse - Parses all unknown time strings in format

Construction

Crawlers

  • Crawlab - Golang based distributed crawler management platform, supports Python, NodeJS, Go, Java, PHP and other programming languages and multiple crawler frameworks
  • Colly - web crawler framework
  • Pholcus - Supports distributed crawler software with high concurrency
  • go_spider
  • Muffet - Website link checker
  • [Creeper] (https://github.com/wspl/creeper)
  • Geziyor - A fast crawler framework that supports JS rendering
  • Apollo - a crawler tool
  • Ferret - Declarative web scraping
  • gocrawl
  • Antch
  • katana - crawler and spider framework

Database

SQL Analysis

Distributed Transaction

  • go-saga - Saga distributed transaction implementation
  • DTM - Cross-language distributed transaction management service supporting TCC, Saga, XA, etc.

Database Related

  • usql - A command line tool that supports almost all SQL and NoSQL databases
  • GORM - GORM V2 + GORM V1 + gorm2sql - generate table creation statement according to model struct + gorm-sharding - SQL interception, AST parsing, sub-table routing, self-increasing primary key stuffing based on conn layer, transparent to users
  • Xorm
  • XormPlus - A custom enhanced version of Xorm
  • GoRose
  • sqlx - database/sql extension pack
  • dbq - database operations
  • gendry - Didi open source SQL builder
  • ozzo-dbx
  • Squirrel - Fluent SQL Builder
  • qb - the database toolkit for go
  • redigo - Redis client
  • go-redis
  • mgo + globalsign/mgo - The MongoDB driver for Go + mgo user guide
  • kingshard - MySQL proxy
  • SOAR - an automated tool for optimizing and rewriting SQL
  • SQLE - SQL Audit Tool
  • Vitess - A database solution for provisioning, scaling and managing large clusters of MySQL instances
  • gh-ost - GitHub open source tool to change MySQL table structure online
  • SQLer - Write APIs with direct SQL queries without problems, let's think 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
  • migrate - database migration tool
  • dbmate - database migration tool
  • ent - An entity framework for Go
  • godb - a Go query builder and struct mapper
  • go-nulltype
  • go-mysql - MySQL toolset
  • SQLittle - Read in SQLite files
  • Bifrost - Heterogeneous middleware to sync MySQL with Redis, ClickHouse and other services
  • elasticsql - Convert SQL to Elasticsearch DSL
  • POP - A database ORM tool based on the sqlx package
  • REL - Modern database access layer for Go
  • RDB - Redis RDB file parsing and generation tool, supports converting JSON, converting AOF, finding big key, generating RDB files and drawing storage flame diagrams, etc.
  • Bytebase - Web-based, zero-configuration and zero-dependency database schema modification and version control management tool

Database Client

Database Engine

  • etcd - Distributed KV storage
  • InfluxDB - time series database
  • Prometheus - service monitoring system and time series database
  • tstorage - time series database
  • Thanos - Prometheus support for simplified deployment, high availability and distributed storage
  • CockroachDB - Distributed SQL database
  • Cayley - graph database
  • RadonDB - A new generation of distributed relational databases based on MySQL
  • TiDB - Distributed relational database compatible with MySQL protocol
  • AresDB - Uber's open-source GPU-driven storage and query engine for real-time analytics
  • leveldb - Go implementation of LevelDB
  • Dgraph - Distributed graph database
  • rqlite - A lightweight distributed relational database based on SQLite
  • gaeadb
  • BadgerDB - KV database, supports ACID transactions
  • LBADD - Distributed SQL database implemented in Go
  • go-memdb - In-memory database based on immutable radix trees
  • VectorSQL - DBMS database for IoT and Big Data, similar to ClickHouse
  • BuntDB - A memory-based KV database that supports disk persistence and ACID transactions
  • TinySQL - Small distributed relational database
  • Tile38 - GEO database
  • Redcon - A custom Redis service compatible with the Redis protocol, using BuntDB and Tile38 for storage
  • genji - Documented embedded database
  • Dolt - Operate database like Git
  • rosedb - A clean and efficient KV database supporting multiple data structures
  • LinDB - Distributed time series database
  • mandodb - an example project, the author introduces how to implement a small time series database from scratch
  • go-mysql-server - A database engine that analyzes MySQL protocol and optimizes SQL
  • Milvus - vector database
  • FerretDB - MangoDB alternative
  • LotusDB - fast KV storage engine compatible with LSM and B+ Tree

Cache

Search Recommendations

  • wukong - full-text search engine
  • go-elasticsearch - Official ES Client
  • elastic - Elasticsearch client
  • go-mysql-elasticsearch - Sync MySQL data with Elasticsearch
  • gse - word segmentation in Go language
  • sego - Go to Chinese word segmentation
  • gojieba - The Go language version of Chinese word segmentation for "破巴"
  • Riot - full-text search engine
  • simplefts - super simple full-text search engine implementation
  • Blast - full-text search (Archived)
  • Fuzzy Search - Text fuzzy search
  • Ginster - One-node training and distributed predictive recommender engine
  • gofound - full-text search engine
  • ZincSearch - full-text search engine
  • Bluge - Text segmentation

Form

Auth

Encrypt And Decrypt

  • 2fa - Two-factor authentication on the command line
  • age - file encryption tool (library)

Video

  • goav - FFmpeg video processing
  • lal - live streaming network transmission server
  • bililive-go - live recording tool
  • screego - Share developer screen via browser
  • livego - live server
  • Monibuca - streaming server development framework
  • olive - supports live recording on Huya and other platforms

Graphics Processing

  • Barcode - barcode/QR code generator
  • picfit - Image editing, cropping, management server
  • gmfs - image editing, cropping, management server
  • besticon - favicon service
  • Caire - image editing library
  • Imaging - imaging library
  • gocaptcha - verification code generation
  • base64Captcha - verification code
  • go-is-svg - Check if it is an SVG image
  • identicon - Generate nice random avatar for user based on arbitrary data like user's IP, mailbox name etc.
  • prominentcolor - Identify the main color of an image
  • dchest/captcha - generates and verifies image or audio captcha
  • bimg - image processing
  • imaginary - image processing service
  • Primitive - Draw graphics with primitive geometry
  • orly - create your own O'RLY animal book cover
  • smartcrop - Smart cropping of images
  • gift - image filter
  • Germanium - Generate images for code
  • Go Graphics - 2D image rendering
  • [canvas] (https://github.com/tdewolff/canvas) - vector drawing
  • Formulae - Mathematical formula analysis, calculation, chart creation
  • imager - image processing server
  • Triangula - Add a triangular filter to the image
  • D2 - A charting scripting language that converts text to graphics
  • ImGo - Image processing library with concise and chain calls

Image Recognition

Charts

Build And Compile

  • Mage - a Make/Rake-like build tool using Go
  • GoReleaser - Tool for Go multiplatform binary packaging and homebrew release support
  • goxc - Cross-platform compilation tool (Since version 1.5 has built-in cross-compilation, it is no longer maintained)
  • Task - Make-like build tool
  • codegangsta/gin - hot compilation tool
  • Air - hot compilation tool
  • gowatch - hot compilation tool
  • Fresh - hot compilation tool
  • dh-make-golang - Automatically builds Debian packages
  • gobinaries - Compile and install programs written in Go without installing Go
  • NFPM - deb, rpm, apk and other packaging tools
  • Gox - Go to the cross compilation tool

Static Resource Embedding

  • pkger - Package static files into Go binaries
  • mewn - Static files are embedded and packaged in binaries
  • static - static file embedding
  • go.rice
  • go-bindata - Converts static files to Go code files
  • vfsgen - Pack static files into type "http.FileSystem" for access
  • packr

Elegant Upgrade

Code Analysis

  • reviewdog - code review robot
  • revive - code inspection analysis
  • GolangCI-Lint - Analysis tool to check code quality
  • errcheck - detects unhandled errors (Errors)
  • Staticcheck - A set of static Go code analysis tools
  • Golint - Google's official code quality check tool
  • GoReporter
  • go-critic
  • gocloc - Statistics on the number of lines of code by language
  • coca - code statistics analysis
  • Go Report Card - Go project quality analysis report tool
  • ddsv-go - deadlock detection tool
  • golang/perf - official quantitative performance analysis tool
  • GoPlantUML - Generate PlantUML class diagrams for Go projects
  • gosize - Analyze the size of the Go binary
  • shotizam - Analyzing the size of Go binaries and outputting to SQLite3
  • goconst - Finds repeating strings that can be replaced with constants
  • sploit - library to support binary analysis and usage
  • perf - performance utilities for Go
  • fgprof - Go to the profiling tool
  • conprof - Coroutine Analysis
  • statsview - Visual analyzer for real-time Go runtime stats
  • codesearch - code search tool
  • Pyroscope - Visual tool for monitoring program performance, supports multiple languages
  • gosec - Code security check tool
  • gokart - Static code analysis tool
  • gofumpt - gofmt advanced code formatting tool
  • NoVerify - PHP code analysis tool

Debugging

  • go-spew - variable printing tool
  • Delve - debug tool
  • gdlv - Delve interface version
  • Weaver - Tracking Go program execution links
  • repr - Variable printing tool
  • pp - tool for printing color variables
  • ffmt - Variable printing tool
  • gops - Go program monitoring and debugging tool officially developed by Google
  • pprof
  • go-callvis - Visualize the call graph of a Go program
  • q - Automatically print variable types and format the output
  • Litter
  • RDebug - A handy tool for RD R&D, self-testing and debugging, open source by Didi
  • debugcharts - Visual memory usage debugging tool
  • gcvis - Visualize gctrace in real time
  • package/profile
  • statsviz - View runtime statistics of Go application (GC, MemStats, etc.) in real-time in browser
  • autopprof - automatic profiling pprof
  • stack - Capture, edit and format call stack information
  • pretty - Print variable
  • go-deadlock - Include (RW)Mutex and provide deadlock detection
  • mmcloughlin/profile
  • gcnotifier - notify when GC occurs
  • grmon - command line monitor showing goroutines
  • valast - outputs the go/ast structure of variables, similar to PHP's var_export function
  • lensm - Go assembly and source code comparison display tool

Test

Error Handling

  • Error
  • errorx
  • errwrap - Go tool for wrapping and debugging with new %w verb directive
  • erris - linters for "errors.Is" and "errors.As".
  • eris - aims to give you more control over error handling through error packaging, stack traces and output formatting
  • errlog - Use static and stack trace analysis to quickly determine which function call caused the error
  • juju/errors
  • go-fault - Officially produced by GitHub, a fault injection library based on standard library http middleware
  • merry - support stack, status code error handling
  • cockroachdb/errors - A powerful alternative error handling package for errors and github.com/pkg/errors
  • go-multierror - Support error list

Security

  • Kunpeng - Open source POC detection framework
  • nmap - Security audit tool nmap development kit
  • Hetty - HTTP security research toolkit, HTTP proxy interception with web interface and proxy log viewer
  • Fibratus - Windows kernel exploit and tracking tool
  • Secure - HTTP security middleware

System Message

  • go-hardware - a package that collects a bunch of information about hardware
  • cpuid - CPU information
  • gopsutil - ps function pack
  • go-sysinfo - system information
  • go-locale - Cross-platform speech recognition library
  • go-ps - System process information
  • psgo - ps command implementation
  • ghw - Hardware information

UUID

  • go.uuid - UUID library
  • SEQSVR - Distributed ID generation service implemented by Go + MySQL
  • google/uuid - Google's open source UUID package
  • gofrs/uuid
  • Snowflake - Twitter Snowflake IDs
  • sonyflake - Sony's version of Twitter's Snowflake
  • ulid - Universally Unique lexicographically sortable identifier
  • ksuid - K-sortable globally unique IDs

Logs

Monitoring

  • OpenFalcon - Xiaomi's open-source surveillance system
  • Prometheus - service monitoring system and time series database
  • Grafana - Analysis and monitoring platform, supports Graphite, Elasticsearch, OpenTSDB, Prometheus, InfluxDB and other data sources + grabana - Quickly create Grafana dashboards with Go code
  • TeaWeb - A visually intelligent web server that integrates static resources, caching, proxy, statistics and monitoring
  • Jaeger - Distributed tracing system
  • go-osstat - statistics of system indicators
  • graafterm - Metric dashboards on the terminal
  • mymon - Monitoring MySQL operation
  • PingMe - A service availability alert command tool supporting multiple messaging platforms
  • supervisord - Go language implements supervisor

Statistical Analysis

  • Fathom - Website statistics
  • Veneur - Real-time distributed data processing pipeline
  • gonum - in connection with scientific computing

Container Technology

  • moby - Docker
  • docker-ce
  • Rancher - Enterprise-grade, full-stack container management platform
  • Gorsair
  • docui - TUI client for Docker
  • Podman - Manage and run all "OCI" compliant containers and container images
  • Skopeo - image management tool
  • Buildah - A tool for building "OCI" container images
  • go-docker - Implementation of Docker core functions in Go
  • Packer - lightweight image definition tool

Cluster Management

  • Nomad - cluster manager and scheduler
  • OpenShift Origin - Containerized software solution developed by Red Hat

Kubernetes

  • kubernetes - management platform for scheduling containers
  • k0s - the smallest k8s distribution
  • sealos - A command to deploy Kubernetes high availability clusters
  • KubeEye - detects various issues on Kubernetes through configuration rules
  • endpoints-operator - 4-layer LB with inspector for K8S internal services to access external services

Machine Learning

  • goml - machine learning library
  • GoLearn - an out-of-the-box machine learning library
  • glow - An easy-to-use distributed computing system
  • Gobot - language library for robotics and physical computers
  • Olivia - Neural Networks
  • Pico - Pure Go face recognition library for object recognition paper based on pixel intensity comparison
  • tfgo - Tensorflow in Go
  • Prophecis - One-stop cloud-native machine learning platform developed by WeBank in-house
  • AID - Operations Platform for Machine Learning, Discovery, Deployment, Optimization
  • SQLFlow - SQL engine + AI engine

Algorithm

  • GoDS - Go implements various data structures
  • Dragonboat - Raft consensus algorithm library for multiple groups
  • eliben/raft - Raft algorithm
  • hashicorp/raft - Raft algorithm
  • Graft - Raft algorithm
  • golang-lru - implementation of the LRU algorithm
  • tinylru
  • finn - Fast raft framework using Redis protocol for Go
  • xorfilter
  • priyankchheda/algorithms - Go language implementation of various algorithms
  • meow - meow hash
  • basalt - powerful, distributed, dedicated, space-optimized bitmap service to avoid misjudgments by Bloomfilter and CuckooFilter
  • go-blurhash - BlurHash, a hash algorithm for blurring images
  • xxhash - implementation of the xxHash hash algorithm
  • go-multihash - Implementation of various hash algorithms
  • memberlist - A development kit for cluster membership management and member failure detection based on the Gossip protocol
  • Backoff - Exponential backoff
  • FSM - finite state machine

Data Structure

Addiction Injection

JSON

  • GJSON - JSON interpreter
  • SJSON - JSON modification tool
  • fastjson - fast JSON parser and validator for Go
  • jsonparser
  • ffjson
  • json-iterator - Didi open source JSON parser
  • gojsonq - JSON/YAML/XML/CSV and other data queries
  • easyjson
  • go-jsonc - Converts annotated JSON to uncommented
  • jin - JSON manipulation toolkit with standard library and functions like "tidwall/gjson" and "tidwall/sjson".
  • hujson - supports JSON decoding for annotations
  • pkg/json - JSON decoder
  • ColorJSON - Print color JSON in terminal
  • jid - Tool to parse and read JSON data
  • jsonc - supports comments and commas
  • sonic - Bytedance open source JSON parser and modifier
  • go-json
  • jsonquery - XPath syntax query JSON
  • fx - command line JSON display

Dependency Management

  • goproxy.io - GOPROXY proxy service
  • goproxy.cn - Proxy service more suitable for home users
  • Gopm - Go package management tool
  • govendor - package management tool for vendors
  • gom - Management tool for package versions
  • rvflash/goup - Check if the package version is updated
  • owentheal/goup - Switch to managing multiple versions
  • Athens - "GOPROXY" proxy service

Microservices

  • Istio [Chinese documentation] - a large microservice systems management tool
  • goa
  • Micro - Microservice tools
  • Go Micro - Microservice framework
  • Go-Kit - Go microservice toolset
  • GoKit CLI - Go Kit framework
  • gogo
  • go-chassis
  • kites
  • Kratos - B-Station open source microservice framework
  • Temporal - microservice orchestration platform
  • Serf - service orchestration management platform
  • Open Policy Agent - general policy engine, CNCF incubation project
  • gizmo - microservice toolset
  • MOSN - Cloud-native network data plane for edge and service mesh
  • Erda - PaaS that provides enterprise DevOps, microservice governance and multi-cloud management

Serverless

  • OpenFaaS - Serverless Functions Made Easy (FaaS framework for function services)
  • faasd - Lightweight FaaS engine
  • fn - Event-driven FaaS
  • riff - Kubernetes-based FaaS
  • Nuclio - Serverless framework for real-time events and data
  • Flogo - Event driven serverless framework
  • Dapr - Microsoft's open-source microservice components for cloud and edge computing
  • kubeless
  • Fission - Serverless on Kubernetes
  • pulumi
  • Knative
  • fx
  • IronFunctions
  • scholz/faas - Make the function of any package an HTTP interface

Developer

Continuous Integration/Delivery

  • CDS - Continuous Integration Service
  • gopub
  • CodePub
  • syncd - code deployment tool
  • Drone - Docker-based continuous release platform
  • Cyclone - continuous integration and release platform
  • tbls - CI-friendly database documentation tool
  • Woodpecker - Fork from Drone

Git

  • gogs - Git server similar to GitLab
  • Gitea - Git server forked from gogs
  • go-git - Git operations implemented in 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
  • gitbase - Query Git logs in SQL
  • git-chglog - Management tool "CHANGELOG".
  • chglog - Management tool "CHANGELOG".
  • lazyhub - Terminal UI client for GitHub
  • goaction - Writing GitHub actions in Go
  • bit - Git command extensions with support for auto-completion of file and branch names, command and flag suggestions
  • go-github - GitHub API operations library
  • askgit - Access Git repository information via SQL
  • git2graph - Generate a structure diagram based on the commit record of the git warehouse
  • lazygit - Git terminal UI
  • gh-dash - GitHub CLI (gh) nice terminal panel

Current Limiter

Translator

  • TinyGo - A Go compiler for microcontrollers, WebAssembly and command line tools
  • minigo - A Go compiler from scratch
  • llir/llvm - LLVM compiler
  • jit-compiler - JIT compiler
  • Go+ - Qiniu Cloud open source data science oriented language, fully compatible with Go language

Interpreter

Language Interpreter

  • participle - Generic custom grammar parsing package
  • GopherLua - VM and compiler for Lua in Go
  • go-lua - A Lua VM in pure Go
  • DCLua - Go Lua Compiler and VM
  • otto - JavaScript interpreter
  • goja - ECMAScript 5.1(+) implementation
  • v8go - Run JavaScript from Go
  • gpython - Python interpreter for Go
  • Grumpy - Convert Python to Go code, open source by Google
  • starlark-go - Starlark in Go
  • avo - x86 assembler builder
  • wagon - WebAssembly interpreter
  • GopherJS - Compile Go code to JavaScript code
  • Yaegi - Go language interpreter
  • properties - Java properties scanner for Go
  • jvm.go - JVM
  • gobasic - A BASIC interpreter written in Golang
  • golisp - Lisp interpreter
  • dst - Go Decorated Syntax Tree
  • mvdan/sh - shell parsing, formatting, interface
  • tdewolff/parse - general purpose lexical analyzer Lexer with built-in support for parsing HTML/CSS/JSON/XML/JS/SVG syntax
  • Joker - Clojure

PHP

Custom Interpreter

  • CUE - Configure Unify Execute (validate and define text-based and dynamic configuration)
  • cel-go - Common Expression Language (Go implementation of CEL)
  • Math-Engine - Mathematical expression analysis and calculation engine library implemented in Go, very suitable for learning syntax analysis
  • Gval - expression calculation
  • Expression Parsing
  • goexp - Recursive descent expression parser in Go
  • goastch - Go to the AST syntax analyzer
  • tdop
  • swallow
  • Anko
  • Expr - Compile and execute expressions in strings
  • Tengo - scripting language written in Go
  • V - language written in Go
  • kumarUjjawal/bison
  • Monkey
  • govaluate
  • [Compiler] (https://github.com/MauriceGit/compiler) - Compiles custom syntax code into X86-64 assembly
  • elvish - Interactive shell language
  • QLBridge - Go to the SQL runtime engine
  • YQL - SQL WHERE style rules engine
  • Flux - InfluxDB data language
  • Spiker - A simple regular expression executor written in Go, supporting custom functions and process control, suitable for scenarios with complex business rules

Code Generation

  • jennifer - Go code generation
  • ifacemaker - generates an interface based on the structure method
  • gg - Go code generation

Editors

Runner

  • gore - Run Go code online
  • nodebook - Run multiple languages online
  • go-pry - Interactively type and run Go code in terminal like Python, R, PHP, etc

Query Language

  • graphql - GraphQL implementation in Go
  • graphql-go
  • GQLEngine - based on the graphql-go implementation
  • RQL - REST resource query language
  • Thunder - GraphQL service building framework
  • gqlgen - package for creating GraphQL servers
  • super-graph - Build complex GraphQL APIs in Go projects without writing any code

Game Related

Desktop Development

GUI

  • Lorca - HTML5 desktop application written in Go that relies on Chrome for UI rendering but does not package Chrome into the application
  • webview - Cross-platform desktop software built with Go/C/C++
  • walk - Windows GUI toolkit
  • go-gtk - Go bindings for GTK
  • andlabs/ui - On-board GUI library for Go
  • fyne - Material design style GUI
  • go-gl - Go bindings for OpenGL (generated via glow)
  • therecipe/qt - Qt-based cross-platform UI package
  • giu - Cross-platform GUI framework based on Dear ImGui
  • go-app - A WebAssembly framework for building GUI apps using Go, HTML and CSS
  • wails - Build desktop applications using Go and web technologies
  • chromedp - Chrome DevTools browser-driven protocol implemented in pure Go language that can be used in crawler, anti-crawler, testing and other scenarios
  • Rod - A devtools driver designed to simplify automation and crawling that uses the browser's programmatic devtools interface to control the browser
  • go-astilectron - Cross-platform development based on Electron
  • Gio - Cross-platform UI framework for mobile applications
  • nucular - Gio based implementation
  • GoVCL - cross-platform GUI package
  • vugu - WebAssembly UI framework
  • GoGi - 2D/3D GUI framework
  • systray - Cross-platform support for menu bar management
  • go-flutter - Bind Flutter to desktop applications
  • NuxUI

Desktop Help Package

Desktop Application

Mobile Phone

Coroutine/Thread

  • ants - goroutine pool
  • tunny
  • go-workers - Safely run a group of workers simultaneously, input and output across channels
  • Machine - Coroutine management inspired by errgroup.Group
  • Thread

Task/Timer

  • RxGo - Go version ReactiveX, simple and convenient processing of asynchronous data streams
  • Grift - Go-based task runner
  • cron - a cron library on the go
  • goCron - A job scheduling package from Golang
  • jobrunner
  • CurlyQ - Library for processing background tasks
  • overtalk/task - task management and execution, supports custom number of iterations
  • PPGo_Job - time management system for tasks
  • gocelery - Celery's Go language implementation
  • [Machines] (https://github.com/RichardKnop/machinery) - Asynchronous task scheduling through distributed messages
  • dkron - Distributed task scheduling system
  • Grit - Task management based on MultiTree implementation
  • Asynq - Asynchronous distributed task queue
  • cronsun - distributed task system

Stream Processing

WeChat

  • weapp - WeChat applet SDK
  • wechat - WeChat SDK for Go
  • wechat-go - Go implementation of WeChat Web API

SDK

  • gopay - Go version SDK for QQ, WeChat, AliPay
  • alipay - Alipay SDK

Blockchain

  • Hyperledger Fabric - Hyperledger based on Blockchain
  • go-ethereum - Official Go implementation of the Ethereum protocol
  • bbgo - Framework for cryptocurrency trading, written in Go
  • btcd - Bitcoin implementation

Development Aid Package

  • cvt - Arbitrary data type conversion, support for custom types, extract structure fields and values
  • copier - Copy values between structures
  • cast - data type conversion
  • diff - structure and value comparison
  • go-extend
  • com - Toolkit
  • php2go - 140+ PHP function packs implemented in Go
  • gommon - Common packages for Go
  • reflect2 - Reflect API with no runtime Reflect.Value cost
  • mapstructure - convert map value to structure
  • naza - base library for Go language
  • automaxprocs - Automatic setting of GOMAXPROCS
  • c2go - Tool to convert C code to Go code
  • rnm - code refactoring help
  • memviz - graphical data structure
  • underscore.go
  • go-testdeep - Very flexible depth comparison package that extends the Go test package
  • go-model - struct operation package
  • concurrent-map - Concurrent secure map
  • goleak - Goroutine leak detection
  • guregu/null - "null" processing package for SQL/JSON that provides alternative types
  • stats - Default numeric stats
  • Chronos - static race detector
  • collection - Replace native slice
  • rf - code refactoring tool
  • bytebufferpool - byte buffer pool
  • bpool - byte buffer pool, supports bytes.Buffers
  • mergo - Merge structure and dictionary data
  • go-funk - General functions implemented based on reflection
  • lo - shared functions based on 1.18+ generics
  • juniper - Realize common container, iterator, data flow and other functionality based on generics
  • mergo - merges structures and dictionaries
  • xstrings - String related functions

Code Generation

  • ChimeraCoder/gojson - Generate structure from JSON
  • db2struct - Generate structure according to table structure
  • smallnest/gen - Generate structure by table structure
  • sqlc - Generate Go code based on SQL statements
  • xo - Automatically generate Go code according to table structure or query statement

System Development

  • LinuxKit - Toolkit for building secure, portable and portable operating systems for containers
  • go-systemd - bind systemd
  • Lima - Linux-on-Mac ("macOS subsystem for Linux", "containerd for Mac")
  • gopher-os - A Linux-compatible 64-bit POSIX-style system
  • gouring - implement system calls without relying on CGO

Not Categorized

  • go-playground - Go Playground better than the official one
  • Robotgo - Cross-platform golang automation system, controls keyboard and mouse bitmap and reads screen, window handle and global event monitor
  • go-homedir
  • i18n - i18n multilingual toolkit
  • go-i18n - multilingual toolkit
  • Paginator - pagination tool
  • gls - Local goroutine storage
  • mcuadros/go-version - Version number comparison
  • go-semver - Semantic versioning
  • semver - Another semantic version
  • hashicorp/go-version
  • Metabolize - Decodes HTML meta tags into a golang structure
  • otp - One-time password utilities
  • [misspelled] (https://github.com/client9/misspell) - Commonly misspelled English words
  • CRDT - Implementation of the final consistency algorithm CRDT (Convergent and Commutative Replicated Data Types).
  • script - Makes writing shell-like scripts in Go easier
  • sysadmin-utils
  • licenseclassifier - identifies the LICENSE type in the file
  • go-license-detector
  • rose - Embed and run Go code in HTML
  • esbuild - JavaScript build packaging tool
  • clipboard - Cross-platform implementation of the clipboard
  • Timeliner - Collect and organize personal data on social networking sites and index them in timelines
  • hc - HomeKit platform development framework
  • adresse - address processing library, supports multiple languages
  • webhook - webhook service that can run shell commands
  • webhookd - webhook service for shell scripts
  • go-cid - CID spec Go language implementation
  • gorush - APP message notification service
  • EventBus - event bus
  • go-winio - provides interface support for Win32 IO operations
  • clipboard - clipboard
  • fq - reads binary data/files in jq syntax

Logo

Tool

Resource Page

About

Go language excellent resource arrangement, to accelerate the implementation of the project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published