当前位置:网站首页>[go language] we should learn the go language in this way ~ a comprehensive learning tutorial on the whole network
[go language] we should learn the go language in this way ~ a comprehensive learning tutorial on the whole network
2022-06-22 02:39:00 【Manon impression】
hello , I am a Junior Internet players , Committed to sharing high-quality open source projects in various fields .
This is an article that can benefit you for life Go Essays , It brings together biblical 500 + Go The essence of open source projects ,Go Open source ebooks 、Go Learning Roadmap !
I suggest you spend 2 Read this answer in minutes , Can help you save 90% Book search time , Be sure to read until the end .
Remember to give a praise to your close friend , Spent a lot of time collecting and sorting , Let good things be seen by more people .
Go Language learning roadmap

Go Language ebook recommendation
Go-web Programming Baidu cloud link Extraction code :pm8s
Go Concurrent actual combat Links Extraction code :4end
Go Language programming links Extraction code :lhfk
G Language standard library link : Extraction code :ax5n
Go Language programming : Extraction code :d35w
Go Language Bible : Extraction code :q8mr
Go Language practice : Extraction code :ikaq
Go Language learning notes : Extraction code :83tk
500 + Go Language open source project
Go Learning route

API Services and tools
Graphic language
- GraphJin - be used for Postgres Immediate GraphQL API. No code required , take GraphQL Compiled into SQL.
MTProto
- MTProto - In pure Go Written on Telegram API Complete native implementation of .
Astronomy
- go-fits - FITS( Flexible image transmission system ) Format image and data reader
- astrogo/fitsio - Pure Go FITS( Flexible image transmission system ) Format image and data reader / Writer
- cosmo - Common cosmological calculations of cosmic distance and time (Friedmann-Lemaître-Robertson-Walker Measure ).
- gonova - libnova The wrapper – Celestial mechanics 、 Astrometry and astrodynamics library
- meeus - Jean Meeus Of “ Astronomical algorithm ” The implementation of the
- novas - With the Naval Observatory vector astronomy software (NOVAS) The interface of
- utdfgo - spacecraft UTDF Packet reader and decoder
Building tools
- beku - In the user environment (GOPATH Or supplier directory ) Library and program of management package in
- colorgo - To color go Build output
- dogo - Monitor the changes of source files and automatically compile and run ( restart )
- fileembed-go - This is a command line utility , Used to get a large number of source files , And embed them into Go In bag
- gb - Go Of ( the other one ) Building tools , The focus is on multi package projects
- gg - A small multi golang project env/make Management tools .
- GG - Go in Go Build tools for
- Godag - Go The front end of the compiler collection
- goenv - goenv Provide Go Version and Go Workspace management tools
- gopei - Apply to Unix / Linux Simple Go The compiler and LiteIDE Erection sequence , It adds many functions , Such as github Support and demonstrator .
- go-pkg-config - pkg-config Of Lightweight cloning
- goscons - Go Another group of SCons Builder
- go-server - Agile server framework .
- gotgo - Realization “ Generic ” Experimental preprocessor
- gows - Go Workspace Manager
- goxc - One focuses on cross compilation 、 pack 、 Build tools for version control and distribution
- GVM - GVM Provides a management Go Version of the interface
- Realize - With file viewer 、 Output stream and real-time reloading Go Build system . Run with a custom path 、 Build and observe file changes .
- SCons Go Tools - A set of builders , It's easy to be in SCons Chinese compiler Go project
- Task - A task runner / Make A simple alternative
cache
- cache2go - Concurrent security cache library with expiration function and access counter
- cache - Go Of LevelDB style LRU cache , Support is not GC Object caching .
- go-cache - Go Memory keys for : Value store / cache ( Be similar to Memcached) library , For stand-alone applications
- golibs/cache - A small cache package
- gomemcached - go Medium memcached The server
- gomemcache - One memcached client
- go-slab - go Of Slab distributor .
- groupcache - Cache and cache population Library , Designed to replace... In many cases memcached
- libmemcache - Use memcache Fast client and server libraries for protocols
- memcached-bench - Benchmark tool for memory cache server
- memcached - fast memcache The server , Support more than available RAM Persistence and cache size
- memcache - go to memcached client , from YouTube Vitess Bifurcation
- rend - Manage data chunking and L1/L2 The cache memcached agent
- YBC binding - YBC The binding of the library is fast in-process blob Caching provides API
- g2cache - Coordinated local and external two-level caching scheme
Cloud computing
- aws-sdk-go - Apply to Go Programming language AWS Development kit .
- Docker - Linux Container runtime . from dotCloud Development .
- Apply to Go Of Enduro/X ASG application server . Provide application server and middleware facilities for distributed transaction processing . Support microservice based application architecture . from ATR Baltic Development .
- Flamingo - Lightweight cloud instance upper and lower culture tools .
- gocircuit - A distributed operating system , On top of traditional operating systems on multiple machines in the data center deployment . It provides a clean and unified abstraction , Treat the whole hardware cluster as a single 、 A single computing resource . from Tumblr Development .
- gosync - Used to synchronize data to S3 And from the S3 Synchronize data packets .
- juju - from Canonical Developed orchestration tools ( Deploy 、 Configuration and lifecycle management ).
- Kubernetes - come from Google Container cluster manager .
- be based on liblxc Of LXD The daemons provide REST API To manage containers
- mgmt - from @purpleidea( Red hat employees ) and mgmt The next generation of configuration management tools developed by the community ( parallel 、 Event driven 、 Distributed systems ).
- rclone - “ For cloud storage rsync” - Google Drive、Amazon Drive、S3、Dropbox、Backblaze B2、One Drive、Swift、Hubic、Cloudfiles、Google Cloud Storage、Yandex Files
- ShipBuilder - ShipBuilder Is a minimalist open source platform as a service , from Jay Taylor Development .
- swift - Swift / Openstack Object Storage / Rackspace Of cloud files Go Language interface
- Tsuru - Tsuru By Globo.com The open source multilingual cloud computing platform developed is a service (PaaS).
Command line options parser
- argcfg - Use reflection to populate the fields in the structure from the command line parameters
- autoflags - Populate from the configuration structure go Command line application flags
- cobra - modern go CLI Interactive commander , Support commands and POSIX/GNU sign
- cli - Used to implement the command line interface Go library .
- cmdline - A simple parser , Support short option and long option 、 The default value is 、 Parameters and subcommands .
- command - Jiangzi command Add to your CLI, Provide help and instructions .
- docopt.go - use Go Programming language docopt.
- flaq - Command line option parsing library , accord with POSIX/GNU standard , Support structure tags and Go Method of marking .
- getopt - Go Full functional tradition of style (BSD/POSIX getopt) Option resolution
- getopt - Another one for Go Of getopt library . This is like Python The same as .
- gnuflag - GNU Compatible flag parsing ; And flag Basically compatible .
- go-commander - Use commands and subcommands 、 Parameter checking and context use help simplify Go Creation of command line interface . from “go” Tool code forks .
- go-flags - go Of Command line options parser
- go-getoptions - suffer Perl Of GetOpt::Long Flexibility inspired Go Option parser .
- goopt - Used to parse command line flags getopt clone
- go-options - Go Command line parsing library
[mellium.im/cli](https://link.zhihu.com/?target=https%3A//godoc.org/mellium.im/cli)Used to analyze modern CLI The library of the application , Including subcommands that may have their own logo and built-in help system . Designed to use the least API.- options - Self recording CLI Option parser
- opts.go - Lightweight POSIX and GNU Analysis of style options
- pflag - Go A direct substitute for the logo package , Realized POSIX/GNU Style --flags.
- subcommands - A concurrent 、 Unit tested subcommand Library
- uggo - Another option is the parser , Provide similar gnu Option resolution for . This package ( The embedded )flagset. It also provides basic pipeline inspection ( image ls Such commands behave differently when transmitted through the pipeline ).
- writ - Flexible option parser with comprehensive test coverage . It means “ It's just work ” And not in the way .
Command line tools
- amqp-message-remover - From... Through regular expression patterns AMQP Delete unwanted messages from the queue
- Arduino-cli - Arduino CLI It's an integrated solution , Provide a builder 、 plate / Library manager 、 Uploader 、 Discover and use any Arduino Many other tools required for compatibility boards and platforms .
- awless - Amazon Web Services (AWS) Powerful command line interface .
- Boiler - A very fast CLI Tools , Used to create a project from a template .
- box-cli-maker - For you CLI Make highly customized Box.
- comb-go - Golang Realized CLI Tools , Used to manage CloudComb resources .
- coshell - GNU ‘parallel’ substitute .
- dasel - Query and update data structures using selectors on the command line . And jq / yq Quite a , But support JSON、YAML、TOML and XML, The runtime dependency is zero .
- DevTodo2 - Small command line task list manager for each project .
- dsio - Google Cloud Datastore Command line tools for .
- efs2 - A very simple configuration management tool , By stupid shell Scripts provide support .
- enumeration - Simple enumeration code generation .
- fzf - Command line fuzzy Finder
- gich - use Go Cross platform utilities written
- gister - Manage your... From the command line github gist
- git-time-metric - Simple 、 seamless 、 Lightweight Git Time tracking
- gmail2go - ordinary gmail Multiple accounts cli Mail checker
- go-amqp-sniffer - Listen AMQP Exchange and stream messages to mongoimport Compatible JSON Standard output in
- gocreate - Command line utility for creating files from templates .
- godocdoc - start-up godoc And open it to the project in the current directory in the browser .
- gojson - Used to operate JSON For the development of Go Command line tools for code .
- golor - golor Is a golang Command line tools for source code coloring
- GoNote - Command line SimpleNote client .
- gopass - have git Command line password manager with synchronization function
- GoPasswordCreator - A gadget for creating random passwords
- Grozilla - File downloader utility with recovery function .
- JayDiff - use Go Compiling JSON diff Utilities .
- jsonpp - A quick command line JSON Beautiful printer .
- lsp - A more humane alternative
ls - ltst - Check the latest news you selected in your terminal
- passhash - Command line utility for creating secure password hashes
- passman - Command line password manager
- pdfcpu - PDF processor .
- pjs - Beautiful printing and fast search JSON data structure .
- project - Very simple CLI Tools , Used to set up a new project from a template .
- redis-view - The tree tool can help you explore redis Data structure in the server
- remote-torrent - A simple tool , For remote download Torrent And pass HTTP Search the file at full speed , And not suffer ISP Torrent Limit
- restic - A fast 、 Efficient and secure backup program
- runtemplate - A very simple for executing Go Command line tools for templates , For and
go generate. - runtemplate - Used to perform Go Templates to support generating for your type Go A simple tool for code .
- sift - Fast and powerful open source alternatives
grep - tecla - Command line edit Library
- Terracognita - From existing cloud providers ( reverse Terraform) Read and generate your infrastructure as Terraform The code on the configuration .
- wlog - A simple logging interface , Support cross platform color and concurrency .
- wmenu - An easy to use cli Application menu structure , Prompt the user to make a choice .
- mani - Help you manage multiple repositories CLI Tools
Compress
- brotli - Brotli Binding algorithm .
- compress - Replace... Faster gzip、zip、zlib、deflate.
- dgolzo - LZO binding .
- go-lzo - Pure-Go LZO compressor / Decompressor , Translated faithfully C The code base .
- dictzip - Random access
dictzipFormat file reader and writer . - fast-archiver - An alternative archiving tool with fast performance for a large number of small files .
- gbacomp - be used for ( Explain ) Compress with GBA BIOS Compatible data Go library .
- go-lz4 - LZ4 Port of lossless compression algorithm .
- go-lzss - stay Go To realize LZSS Compression algorithm .
- go-sevenzip - package Sevenzip Realize to 7-zip Access to Archives ( packing LZMA SDK Of C Interface ).
- go-zip - C library libzip The wrapper , Provide modification of existing ZIP The ability of Archives .
- lz4 - High performance , Concurrent LZ4 Realization .
- lzma - Go Compression of /lzma package .
- pgzip - Multicore gzip, Compatible with standard library .
- ppmd-go - LZMA SDK Library Golang binding .( Only bind PPMD)
- s2 - High throughput Snappy Expand .
- snappy-go - Google in Go Medium Snappy Compression algorithm .
- yenc - yenc Decoder package .
- zappy - package zappy Realized zappy Block based compression format . It aims to combine good speed and reasonable compression .
- zstd - Pure Go Zstandard Compress / decompression .
Concurrent and Goroutines
- grpool - Lightweight Goroutine pool .
- pool - Go consumer goroutine pool , Easy to handle goroutine + Save time .
- tunny - One goroutine pool .
- worker - A simple lightweight concurrent job framework .
Profile parser
awsenv - A small binary file , Used to load... For configuration files Amazon (AWS) environment variable
[code.soquee.net/env](https://link.zhihu.com/?target=https%3A//code.soquee.net/env/)— from.envOr similar files to load environment variables , Or load environment variables from any fileio.ReaderAnd populate the local environment .confl - nginx The configuration syntax , loose , code / decode , Custom groups
configor - Support YAML、JSON、TOML、Shell Environmental Golang Configuration tool
fig - Used to retrieve data from files and environment variables ( With validation and default values ) Read the configured micro Library .
flagfile - Add parsing and serialization support to the standard library flag package ( add to --flagfile Options )
gcfg - take INI Style configuration file read in Go Structure ; Support user-defined types and sections
globalconf - Effortlessly adhere to and learn from ini Read the flag value from the configuration file
goconf - Profile parser
goconfig - Configuration based on structural introspection , Support environment variables 、 Command line parameters, etc .
hjson - human beings JSON, Human profile format . Loose grammar , Fewer mistakes , More comments .
hocon - Use HOCON( A humanized JSON Superset ) Format configuration library , Support environment variables 、 Reference other values 、 Comments and multiple files .
jsonconfig - With annotation support JSON Profile parser
koanf - Lightweight , Extensible Library , Used in Go Read the configuration from the application . Built in right JSON、TOML、YAML、env、 Command line support .
lib/ini - package ini Realized Git The configuration file syntax defines INI Reading and writing in text format .
lib/ssh/config - Package configuration provides ssh_config(5) Parser and getter.
properties - Library for reading and writing property files
scribeconf - Facebook Scribe Server configuration file parser
Tom :
go-toml-config - be based on TOML Of Go To configure
go-toml - TOML Linguistic Go library
gp-config - Basic and reflective API Of TOML A collection of methods
toml-go - An easy to use Toml Format Go Parser
toml - be used for Go The reflection of the TOML Parser
tom-toml - be used for Go Of TOML Parser , Support comments / formatter / application .
uConfig - An unbiased 、 Scalable and pluggable configuration management . Support YAML、TOML、JSON、Env vars、K8s DAPI etc. .
viper - A complete configuration solution , Support YAML、TOML and JSON And integration with command line flags
Yam :
yaml - from Canonical What is provided is right for Go Linguistic YAML Support
goyaml - LibYAML to Go A port of
go-yaml - Yes Go Linguistic YAML Support
Console user interface
- ansi - Easily create ansi Escape code strings and closures to format 、 Shaded console output
- ansiterm - pkg Drive response ANSI Plain text console for escape sequences
- cons - A simple package for building interactive console tools .
- gnureadline - GNU Readline binding
- go-ansiout - Another for command-line applications ANSI Escape code sequence tool .
- gockel - Text terminal Twitter client
- gocui - A minimalist library designed to create a console user interface
- gocurse - NCurses The binding of
- gocurses - NCurses Wrappers
- go-ibgetkey - “ Hot key ” Type of user input package , Used to handle keystrokes in command-line applications .
- go.linenoise - Linenoise binding ( Easy to read tips , Optional history , Optional tabs complete )
- goncurses - One ncurses library , Include forms 、 Menu and panel extensions
- gopass - Allows you to enter a password without echoing to the screen
- go-pullbarz - Be similar to DOS Time Lotus 123 Fancy in “ Light Bar ” menu . Depend on go-ibgetkey and go-ansiout.
- go.sgr - terminal / Console color and text decoration ( bold 、 Underline, etc ).
- go-stfl - STFL Thin packaging , be based on ncurses Widget Kit
- goterminal - One go library , Allows you to write and then rewrite text on the terminal , To update the progress . It also applies Windows!
- go-web-shell - long-range web shell, Realization net/http The server .
- igo - A simple interactive Go Interpreter , be based on exp / eval structure , Have some readline improvement
- oh - use Go Compiling Unix shell
- pty - Get pseudo terminal device
- readline - GNU-Readline Pure of class library go Realization
- tcell - Tcell It's a spare terminal package , In some ways similar to termbox, But better in other ways .
- termbox-go - ncurses A minimalist alternative to , Used to build a terminal based user interface
- termios - Terminal support
- termon - Go Simple terminal control interface .
- uilive - uilive Is a real-time update terminal output Go library .
- uiprogress - A library that renders a progress bar in a terminal application .
- uitable - A library that uses tabular data to improve readability of terminal applications .
- yandex-weather-cli - Yandex Command line interface of weather service
Continuous integration
- goveralls - Integrate Coveralls.io Continuous code coverage tracking system .
- coverall - be used for coverall And other tools go project coverprofile
Cryptocurrency
- Skycoin - Skycoin Is a kind of use Go Write the next generation cryptocurrency .Skycoin Not intended to add functionality to bitcoin , But by improving simplicity 、 Security and removing all unnecessary things to improve bitcoin .
cryptography
- BLAKE2b - BLAKE2b Hash function Go Realization
- cryptogo - Some useful cryptographic related functions , Including filling (PKCS7、X.923)、 With random salt and IV Of PBE
- cryptoPadding - stay Go Block filling scheme implemented in
- dkeyczar - Google’e Keyczar Design of encryption library Go port
- dkrcrypt - Korean block cipher :SEED and HIGHT
- dskipjack - SKIPJACK Encryption algorithm Go Realization
- go-cs - Concurrent ssh client .
- go-ed25519 - Floodberry Of ed25519-donna Of CGO binding . Fast batch verification .
- go-hc128 - HC-128 Of Go Realization , A kind of eSTREAM Stream code
- go-jose - JOSE The standard Go Realization
- go- lioness - Use Chacha20 and Blake2b The female lion's wide block code
- go-minilock - minilock File encryption system Go Realization .
- GoSkein - Go Of Skein Hash and Threefisch The implementation of encryption
- go-sphinxmixcrypto - Sphinx Hybrid network encryption packet format operation
- keccak - keccak (SHA-3) Realization
- ketama.go - libketama Consistency of style
- kindi - Encryption command line tool
- openssl - be used for go Of openssl binding
- otrcat - Use Off-The-Record General command line tool for communication with protocol
- scrypt - Colin Percival Of scrypt Key derivation function Go Realization
- secureio - Easy to use XChaCha20 Encryption wrapper , be used for
io.ReadWriteCloserUse ECDH Key exchange algorithm 、ED25519 Signature and Blake3+Poly1305 The checksum / Message authentication . It is also a multiplexer . - simpleaes - AES Encryption becomes simple
- siphash - SipHash: A fast short input pseudo-random function
- SRP - SRP: Secure remote password - stay Go In the implementation of
- ssh-vault - Use ssh Key encryption / Decrypt
- themis - Multi platform advanced encryption library for protecting sensitive data : Secure messaging with forward confidentiality , Secure data storage (AES256GCM); Suitable for building end-to-end encryption applications
- Tiger - Tiger Encryption hash algorithm
- whirlpool - Vortex encryption hash algorithm
Data processing
- automi - stay Go Write processes and integration flows on channels
- Gleam - Fast 、 Efficient and scalable distributed map/reduce System ,DAG perform , On memory or disk , Independent or distributed operation .
- Glow - Glow It is an easy-to-use distributed computing system , Be similar to Hadoop Map Reduce、Spark、Flink、Storm.
- gostatsd - Statsd Servers and Libraries .
- Heka - Real time data and log file processing engine .
- Kapacitor - Handle 、 Framework for monitoring and alerting time series data .
- parapipe - FIFO The Conduit , It executes in parallel at each stage , Keep the order of messages and results at the same time
- pipe - golang Several functional programming supported in (Map/Reduce/Filter)
- proto - Using channels as the result stream Go Of Map/Reduce/Filter etc. .
- Ratchet wheel - Used in Go Execute data pipeline in / ETL Task library .
- recommend - Recommendation engine .
- rrd - rrdtool The binding of .
- XConv - In type ( Basic types 、 structure 、 Array 、 section 、 Mapping, etc. ) Convert any value between
data structure
Collection
- aggregate - Several common data structures
- data-structures - data structure Set (ArrayList、SortedList、Set、AVL Tree、Immutable AVL Tree、B+Tree、Ternary Search Trie、Hash Table(Separate Chaining)、Linear Hash Table)
- ps - Persistent data structures
- Tideland golib - Collection library
Hashtable
- bimap - A simple bidirectional mapping implementation
- gohash - A simple linked list hash table that implements sets and mappings
- go-maps - Go Mapping to interfaces
list
- fs2/mmlist - Memory mapping list .
- GoArrayList - GoArrayList yes Java class ArrayList Of Go Language substitutes , It has almost all functions .
- goskiplist - Go Skip list implementation in .
- itreap - An immutable ordered list , Inside is a treap.
- ListDict - be used for Go Of Python Lists and dictionaries
- skip - Fast location addressable ordered mapping and multi mapping .
- Skiplist - Ordered multi graph with fast indexability .
- skiplist - Skip list implementation . Highly customizable and easy to use .
- skiplist - from Redis Of Sorted Sets Transplanted Skiplist data structure .
- stackgo - Slice based fast stack implementation .
queue
- fifo_queue - ordinary FIFO queue
- figo - Simple with optional thread safe version fifo queue .
- go.fifo - Simple automatic thread adjustment, thread safe fifo queue .
- gopqueue - Containers / The priority queue at the top of the heap
- go-priority-queue - Easy to use heap implementation with traditional priority queue interface .
- golibs/stack - One LIFO and ringbuffer package
- gringo - The use of lock ring free queue is very simple
- heap - A common heap package , There is no need to put the element
interface{}Back and forth . - queued - A simple network queue daemon
- queue - be based on Redis Queue manager for
Chart
- chart - Basic graph algorithm library
- chart - All kinds of trees 、 Implementation of graph and network algorithm
- groph - A pure Go Graphics and algorithm library
set
- disjoint - Disjoint Set ( Joint search algorithm with path compression )
- golang-set - Go Complete thread safe and unsafe set implementation .
- goset - A simple 、 Thread safe Set Realization
- set - by Go Set up the data structure
tree
- b - package b Realize the page splitting with delay / The connection and O(1) Enumerative B+ Trees . Replace... With simple text , It's easy to generate data specifically for user-defined key and value types B+ Tree source code .
- btree - package btree The persistent key with fixed size is realized B Trees ,http://en.wikipedia.org/wiki/Btree
- btree - In the memory ( non-durable )B Tree implementation , Be similar to GoLLRB Of API
- go-avltree - Indexed AVL Trees (Adel’son-Vel’skii & Landis)
- go-btree - Simple balanced tree implementation
- go-darts - Dual array for go Trie System
- GoLLRB - Google Go in 2-3 Left leaning red black of balanced binary search tree (LLRB) Realization
- go-merkle - With proof Merkle Binary ( Search for ) Trees .
- go-radix , go-radix-immutable - Cardinality tree implementation .
- go-stree - Segment tree implementation of interval range query
- gtreap - lasting treap Realization .
- prefixmap - Simple for string based keys trie Prefix mapping
- rbtree - High performance red black tree , Its API Be similar to C ++ STL Set 、 mapping 、 Multi set 、 Multiple maps .
- rbtree - Another red black tree implementation , Have a resemblance to C++ STL Of API
- rtreego - One R Treebank
- triego - Simple for storing words trie Realization
other
- aurora - Cross platform Beanstalk Queue server console .
- bigendian - Binary parsing and printing
- deepcopy - Make a deep copy of the data structure
- dgobloom - Bloom filter implementation
- epochdate - With Unix The number of days since the era, the compact date stored
- etree - Easily parse and generate XML
- excelize - For reading and writing Microsoft Excel(XLSX) Of documents Golang library .
- fsm - A reduced state machine used in place of Boolean values
- go-algs/ed - Generalized edit distance implementation
- go-algs/maxflow - Energy minimization tool using maximum flow algorithm .
- gocrud - A framework for processing arbitrary depth data structures .
- go-extractor - GNU libextractor Of Go Wrappers
- Gokogiri - A lightweight libxml Packing house
- GoNetCDF - NetCDF Wrapper for file format library
- goop - Go Dynamic object-oriented programming support
- gopart - Can be in Go The type of any content in the index is unknown .
- godoc - use Go Protocol buffer compiler
- govalid - Data validation Library
- goxlsxwriter - Used for compiling XLSX(Excel) Of documents libxlsxwriter Of Golang binding
- goxml - Around one libxml2 Thin packaging
- hyperloglog - HyperLogLog and HyperLogLog++ Implementation of algorithm , Used to estimate the cardinality of a collection using constant memory .
- itertools - Provides general iteratable generator functions and similar functions itertools python Package function .
- jsonv - One JSON Validator
- libgob - Used to generate... From other languages gob Low level library
- mxj - Marshal/Unmarshal XML doc from/to
map[string]interface{}or JSON - ofxgo - Used for query OFX The server and / Or parse the response ( And the sample command line client ) The library of .
- Picugen - Universal hash / Checksum summarizer .
- simple-sstable - One is simple 、 concise SSTable Format and Go In the implementation of .
- tribool - Go Ternary ( Tree value ) Logic
- Tuples - A tuple is a type that will contain a mixture of types / It's worth it go type
- vcard - stay go Intermediate reading and writing vcard file .RFC 2425( Of directory information MIME Content type ) and RFC 2426(vCard MIME Directory profile ) The implementation of the .
- weightedrandom - Library for efficient weighted random selection
- xlsx - A help from Microsoft Office Excel XLSX A library that extracts data from a file .
database
See also SQLDrivers page .
Cockroach database
- cockroachdb - Scalable 、 Survivable 、 Highly consistent SQL database
Hazelcast IMDG
- Hazelcast Dangerous transfer client - To officially enter the client to achieve Hazelcast IMDG, Open source memory data grid .
MongoDB
- mgo - be used for Go The richness of MongoDB The driver
- Mongo The driver - official MongoDB Go The driver
- Rocks-stata - MongoDB Backup tools
MySQL
- Go-MySQL-Driver - be used for Go Of database/sql Lightweight and fast package MySQL The driver
- MyMySQL - Use it completely Go Compiling MySQL client API.
- mysqlsuperdump - Generate MySQL Partial and filtered dumps of the database
- TiDB - With Google Of F1 Designed as a model MySQL Compatible with distributed database .
- vitess - For network expansion MySQL database
ODBC
PostgreSQL
[code.soquee.net/migrate](https://link.zhihu.com/?target=https%3A//code.soquee.net/migration/)Use with Rust Of Diesel Compatible mechanism generation 、 Apply and list PostgreSQL Database migration Library .- go-libpq - be used for Go The database of /sql The package is based on cgo Of Postgres The driver
- go-pgsql - Go Of PostgreSQL Client library
- kallax - PostgreSQL Type safety ORM
- pgsql.go - PostgreSQL Advanced client library wrapper
- pgx - Go PostgreSQL The driver , With the database / sql Compatible and with native interface to provide more performance and functions
- pq - For database / sql Of Pure Go PostgreSQL The driver
- yoke - It has the functions of automatic failover and automatic cluster recovery Postgres High availability clusters
QL
- ql - pure Go The embedded (S)QL database .
Redis
- godis - Redis Simple client
- Go-Redis - Redis Client and connector for key value storage
- go-redis - be based on gomemcache frame-built Redis client
- Redigo - Redis Of Go client .
- redis - Go Of Redis client
Rethinking databases
- GoRethink - be used for Go Of RethinkDB The driver
SQLite
- gosqlite3 - SQLite3 Of Go Interface
- gosqlite (forked) - gosqlite A branch of
- gosqlite - Go Simple SQLite binding .
- go-sqlite - A database /sql Driver and standalone sqlite3 Interface
- go-sqlite-lite - One for the Go Simple SQLite package .
- mattn Of go-sqlite3 - Comply with the built-in database /sql Interface sqlite3 The driver
Vitika
- vertica-sql-go - Vertica Pure database Go The driver .
ORM
- beedb - beedb yes Go Of ORM. It allows you to Go Structure maps to tables in the database
- ent - Go Entity Framework
- FilterXorm - xorm Construction conditions of the project .
- go-modeldb - Around one sql.DB Simple wrapper for , For structural support .
- gorm - Go Of ORM library , Designed to be developer friendly
- gorp - Go Of SQL mapper
- go-firestorm - Cloud Firestore Simple Go ORM
- go-store - Go Data repository for , It provides a set of platform independent interfaces to persist and retrieve key value data .
- hood - be used for Go Unknown database ORM. Support Postgres and MySQL.
- lore - Go Simple lightweight pseudo ORM/ Pseudo structure mapping environment .
- qbs - Query by structure . Support MySQL、PostgreSQL and SQLite3.
- sqlboiler - Database generated by code is preferred ORM.
- sqlgen - be used for SQL The interaction of Go Code generation .
- structable - Structure to table database mapper .
- xorm - be used for Go Simple and powerful ORM.
- reform - Better performance based on non empty interfaces and code generation Go ORM.
- go-queryset - be used for Go Of 100% Type safety ORM, With code generation and MySQL、PostgreSQL、Sqlite3、SQL Server Support .
Key value storage
- bolt - suffer LMDB Inspired persistence key / Value store .
- dbm - package dbm (WIP) Implemented a simple database engine , Layering and / Or a hybrid of key value engines .
- fs2/bptree - Memory mapping with duplicate key support B+ Trees . For large amounts of data ( also called +100 GB). Supports anonymous and file supported memory mapping .
- Diskv - Indigenous 、 Key value storage supported by disk
- etcd - Highly available key value store for shared configuration and service discovery
- olric Distributed cache and memory keys / Value data store . It can be used as an embedded system Go library , It can also be used as a language independent service .
- gkvlite - Pure text based on attach only file format go、 Simple 、 Orderly 、 Atomic key persistence .
- gocask - suffer Riak Bitcask Heuristic key value storage . Can be used as dbm And others kv-stores Pure go Realization .
- goleveldb - pure Go in LevelDB key / Another implementation of value .
- kv - Another key / Value persistence . Atomic manipulation 、 Two-phase commit 、 Automatic crash recovery 、…
- leveldb-go - This is a LevelDB key / Implementation of value database .
- levigo - levigo Provides creation and access LevelDB Database capabilities .
- persival - Procedural 、 Persistence 、 Pseudo key value storage
Graph database
- cayley - 100% Go Graphic database , suffer Freebase and Google Inspired by knowledge map .
- Dgraph - Have a resemblance to GraphQL Of API Fast distributed graphics database .
- go-gremlin - Apache TinkerTop Graph analytical framework (Gremlin The server ) Of Go client .
nothing SQL
- couchgo - Go The most complete function CouchDB Adapter . imitation couch.js.
- influxdb - For indicators 、 Scalable data storage for event and real-time analysis
- Kivik - Kivik by CouchDB、PouchDB And similar databases provide a common Go and GopherJS Client library .
- ledisdb - image Redis Same high performance NoSQL.
- nodb - with kv、 list 、 Hash 、zset、 Bitmap 、 Set of pure Go The embedded Nosql database .
- iedot - Use JSON For documents and queries NoSQL Document database engine ; It can be embedded in your program , Or use HTTP As API Run a stand-alone server .
other
- The cabinet - Kyoto cabinet bound to
- camlistore - Lifelong personal distributed storage system .
- cdb.go - Create and read cdb(“ Constant database ”) file
- CodeSearch - Index a large amount of source code and perform regular expression search
- dbxml - Oracle Berkeley DB XML The basic interface of
- drive - Google driver command line client
- Event Horizon - Command query responsibility separation and event traceability toolkit (CQRS/ES)
- go-batcher - stay Go Simply create and use batch programs in
- go-clickhouse - Yandex Clickhouse The connectors ( Column oriented database )
- go-db-oracle - Oracle DB Of GO Interface
- gographite - go Medium statsd The server ( Used to provide data to graphite )
- gokabinet - Kyoto cabinet DBM Implemented binding
- go-model - Robust and easy to use Go Structure mapper and utility methods
- go-notify - libnotify Of GO binding
- goprotodb - And Berkeley DB The binding of , Store records encoded as protocol buffers .
- go-rexster-client - Rexster Graphics server Go client ( Graphics database tools TinkerPop Part of the kit )
- goriak - riak Database driver for database ( The project home page is now bitbucket.org On )
- goriakpbc - Use Riak Of protobuf Interface Riak The driver
- gotyrant - The tyrant of Tokyo Go Wrappers
- go-wikiparse - For processing Wikipedia data mediawiki Dump parser
- hdfs - by libhdfs binding
- JGDB - JGDB representative Json Git database
- mig - be based on SQL Simple database migration
- mongofixtures - One Go Fast and dirty Utilities , For cleaning MongoDB Collection and load devices into it .
- Neo4j-GO - Go Medium Neo4j REST client
- neoism - Neo4j Graphics database client , Include Cypher And transaction support .
- null - Used in SQL Packages that handle null values in
- Optimus Cache Prime - Used with XML Smart Cache preloader for site map sites .
- piladb - Lightweight design based on stack data structure RESTful Database engine .
- pravasan - Simple migration tools ( Such as rake db:migrate Greater flexibility )
- remapper - Convert data from one type / Map to another type of Library
- riako - And Riak Advanced practical methods of database interaction
- sqlbuilder - With row mapping SQL Query builder
- sqlf - stay Go Create parameterization in SQL sentence ,sprintf style
- squirrel - by Go Generate fluent SQL
- Sublevel - same LevelDB Different parts of
- Weed file system - Fast distributed key file storage
- Whisper - Library for using whisper database
- xo - CLI Generate idiomatic for the database Go Code
date
- date - Package for processing dates .
- date - For date 、 Date range 、 time span 、 Time period and time .
- goment - suffer Moment.js Enlightening Go Time bank
- gostrftime - strftime(3) Be similar to time.Time Of Format
- hijri - according to Ummul Qura Calendar a small help library that converts the date of the Hijri calendar into the date of the Gregorian calendar .
- now - Now it is golang Time Kit .
- tai64 - tai64 and tai64n Parsing and formatting
- Tideland golib - Timex Expand
- tuesday - And Ruby Compatible Strftime Realization
Time.strftime
development tool
- cwrap - C Encapsulation of Libraries ( binding ) generator .
- demand - Easy download 、 structure 、 Cache and run Go Applications .
- glib - GLib Binding of type system
- go-callvis - Use point format to visualize Go Program call graph .
- gocog - A code generator that can generate code in any language
- Godepgraph - by go Package creation dependency graph
- godev - When the source code changes again Compile and run your Go Code . You can also monitor all imported changes .
- godiff - With color html Output diff File comparison tool
- gonew - Create a new Go Project tools
- go-play - For testing Go Code HTML5 Web Interface . image http://golang.org/doc/play But running on your computer
- gore - Go REPL. With line editing 、 Code completion and other functions
- gorun - Allows you to Go The source file is used as a script .
- go-spew - by Go The data structure implements a deep and beautiful printer to help debug
- goven - Easily copy code from another project to your project
- gowatcher - Automatically reload the specified by monitoring the directory go Program .
- GoWatch - GoWatch Monitor your dev Whether there are modified files in the folder , If the file changes , It will restart the process .
- goweb - Donald Knuth and Silvio Levy be based on CWEB Of Go literature Programming tools .
- goyaccfmt - Auto reformat Goyacc Source file .
- hopwatch - Go Simple debugger
- hsandbox - For rapid experiments Go Tools for code snippets
- Inject - Golang Dependency injection in ( come from Facebook)
- liccor - Used to update the Go Tool for the license header in the source file
- liteide - Go Automated build tools and based on qt Of Go ide
- Livedev - Livedev Is a development proxy server , Support real-time code reload .
- Martian - Designed for E2E The test of HTTP agent .
- nvm-windows - Apply to Windows Of Node.js Version Manager
- Prettybenchcmp - Store and compare benchmark history locally .
- rerun - Rerun monitor your binaries and all their dependencies , To rebuild and restart when the source changes .
- sling - Network traffic simulator and test automation tools , adopt HTTP or TCP Protocol send file request , Control rate and frequency 、 Number of concurrent connections 、 Delay 、 Overtime , And collect response time statistics 、 Mean and percentile .
- syntaxhighlighter - Language independent code syntax highlighting Library
- Switch - A function switching Library , Built in support of environment variable switching . Pluggable backup engine support .
- trace - A simple debug trace
Emacs label
- egotags - ETags generator
- tago1 - Use go 1 Built for go Of etags generator
- tago - be used for Go Source code Emacs Label Builder
Distributed / Grid computing
- celeriac - stay Go Add interaction and monitoring Celery Worker 、 Supported libraries for tasks and events
- donut - stay Go Build a library of cluster services in
- libchan - Similar on the Internet Go Channel
- locker - Based on the etcd Distributed lock service on .
- dlock - Use gRPC Of this machine Go Distributed lock manager ( Client and server ).
- mangos - be based on nanomsg Extensible protocol Realization
- redsync - be based on Redis Implementation of distributed mutex
- Skynet - Skynet Is for highly scalable API Distributed process grid designed for type service provision .
- Tideland golib - Including a map/reduce library
file
- examplegen - take .go Insert the code in the file into the document ( for example , Example of project readme file ).
- godocdown - The package file (godoc) Formatted as GitHub Amicable Markdown
- GoDoc.org - GoDoc.org from Bitbucket、Github、Google Project Hosting and Launchpad Dynamically generate documents from the source code on .
- golangdoc - Golang Of Godoc, Support translation .
- Mango - from Go Automatic generation of source code unix Manual page
- redoc - Redis Command document
- sphinxcontrib-golangdomain - Go Of Sphinx Domain
- test2doc - From your unit tests for your go The unit generates documents .
edit
- A - be based on Acme Graphical text and binary editor
- Concept - Concept is an experimental research project , Designed to be a modern IDE/ Language pack . Demo video
- de - have Acme and vi Modal graphic editor with function
- Gide - Built in GoGi GUI Medium Go IDE
- Go-bbpackage - be used for Go Developed BBEdit package
- goclipse - be based on Eclipse Of Go IDE.
- Go conTEXT - Highlighter plug-in
- godev - be based on Web Of Go Language IDE
- Godit - use Go Similar to microemacs Text editor for .
- gofinder - ( Code )acme Search tools
- go-gedit - be used for gedit Of Google Go Language plug-ins
- golab - Go Local application builder - be based on Web Of Go ide
- Google Go for Idea - Intellij IDEA Of Google Go Language plug-ins
- micro - Modern and intuitive terminal based text editor .
- Tiger spot - Source editor
- T - Acme/Sam Text editors like that
- ViGo - similar vim Text editor for .
- Wide - Use Golang Our team is based on Web Of IDE.
- chasquid - use Go Compiling SMTP The server .
- gmail - For from Gmail A simple library for sending e-mail to your account , For people who are not interested in dealing with the details of the agreement .
- Gomail - A simple and effective email sending package .
- go-mail - Email utility , Include RFC822 News and Google Mail The default value is .
- go-ses - Amazon AWS Simple email service (SES) API client
- go-simple-mail - “ For sending e-mail Golang package . Support to keep active connection 、TLS and SSL. Easy to batch SMTP.”
- Hectane - Lightweight SMTP client , Includes built-in mail queues supported by disk storage .
- Inbucket - Inbucket Is an email testing service ; It will accept messages from any email address , And make it viewable through the network interface .
- mail.go - Parse email
- MailHog - suffer MailCatcher Inspired email testing service .
- MailSlurper - A convenient SMTP Mail server , It can be used for local and team application development . Swallow the mail !
Error handling
[code.soquee.net/problem](https://link.zhihu.com/?target=https%3A//code.soquee.net/problem/)Package problems can lead to HTTP API Your mistake is similar to RFC7807 in Description of the error .- errgo - Error tracking and comments .
- error - Error increase and error with file and line number .
- error - juju/errors Packages provide a simple way to annotate errors without losing the original error context , And get the stack trace from the error of the recorded position .
- goerr - Allow to make separate ( modularization ) And reusable error handlers . Use Return(error) and catch err := OR1(…)
- hierr - Nesting error in hierarchy .
- panicparse - Analyze panic with style .
- Space Monkey error - Go Missing error Library - Stack capture 、 Error hierarchy 、 Error label
- Tideland golib - Detailed error values
Encoding and character set
- base58 - Human input is friendly base58 code
- bencode-go - Encoding and decoding BitTorrent Peer to peer file sharing protocol bencode Format
- bsonrpc - be used for net/rpc Of BSON codecs
- chardet - from ICU Transplanted character set detection Library
- Charmap - Go Character encoding in
- codec-msgpack-binc High performance and feature rich The usage of Go library , Provides encoding for a variety of binary serialization formats / Decoding support :msgpack
- colfer - High performance binary codec
- gobson - BSON( back ) Serializer
- go-charset - Conversion between character sets . Local go .
- go.enmime - Go Of MIME Email parser Library ( This machine )
- go-msgpack - Go The synthesis of MsgPack library , With packaging / Unpacking and net/rpc Codec support ( Have been abandoned , Support codecs )
- gopack - Go Bit packing
- go-simplejson - And arbitrary JSON The interaction of Go package
- go-wire - Binary and... For structures, etc JSON codecs
- go-xdr - External data representation (XDR) The data representation part of the standard protocol is pure Go Realization , Such as RFC 4506( Out of date RFC 1832 and RFC 1014).
- iconv-go - with Reader and Writer Of iconv Wrappers
- magicmime – With for libmagic Of Go The binding of Mime Type detection
- Mahonia - Go Character set conversion library in
- mimemagic - Automatically detect according to the file content mime type , No external dependence
- mimemagic - be based on FreeDesktop.org Normative purity MIME Sniffer Library / Tools
- msgpack - Go Of Msgpack Format implementation
- msgpack-json - stay msgpack and json Command line utility for conversion between
- nnz - Serialize to JSON and SQL null Of String and Int The original language
- Storable - write in perl Can store data
- TNetstring - tnetstrings( Of the tag Netstrings)
file system
- afero - Go File system Abstract System
- go.fs - Virtual file system abstraction layer .
- poller - The packet poller is a file descriptor multiplexer . It allows concurrent read and write operations on multiple file descriptors .
- vfsgen - Generate a static implementation of a given virtual file system vfsdata.go file .
game
- Bampf - be based on Vu 3D Arcade style game with engine .
- bloxorz - bloxorz Basic level solver
- ChessBuddy - And Go、HTML5、WebSockets Play chess with random strangers !
- Fergulator - One NES Simulator , Use SDL and OpenGL
- FlappyBird - One use golang It's easy to write Flying Bird cloning .
- Godoku - Go Sudoku Solver - “ Share through communication ” Example
- Gorgo - A go program written in go
- gospeccy - ZX Spectrum 48k Simulator
- Ludo Game - from Go on Appengine Supporting Ludo Trivial Pursuit Unhinged
- Pinkman - Command line based chess interface to UCI Compatible chess engine
- Pong - use golang It's easy to write Pong clone
- pong-command - Joke command , Similar to ping pong .
- Steven - Go Medium Minecraft client
- ukodus - Go Sudoku solver in
- WolfenGo - Go Medium Wolfenstein3D clone , Use OpenGL 2.1
- GoChess - Play chess with friends on the terminal
Geographic Information System
- geojson - Go Package to quickly and easily create geojson Format json data . describe
- go-geom - With native Go GeoJSON and WKB Efficient open geographic alliance style geometry for encoding and decoding ( In progress )
- go.geo - Geometry for online mapping / Geo Library ( The author disapproves of using his new gis library
orb.) - go.geojson - GeoJSON Groups of objects Reconciliation Group
- gogeos - For spatial data operations and geometric algorithms Go library
- go-proj-4 - Drawing projection Library PROJ.4 The interface of
- go-kml - Google Earth KML Generate
- go-polyline - Google Maps broken line encoding and decoding
- orb - have geojson、wkb、mvt Supported by 2d Geometric operation ( length 、 area 、 The polygon contains )
- osm - For reading 、 Write and process OpenStreetMap A common library of data
- UTM - two-way UTM-WGS84 converter
- gdal - by GDAL Provide a go Wrappers
Go Realization
- llgo - be based on LLVM Of Go compiler , use Go To write
Graphics and audio
- accumimage - A variation of the
[image.NRGBA](https://link.zhihu.com/?target=https%3A//pkg.go.dev/image%23NRGBA)and[color.NRGBA](https://link.zhihu.com/?target=https%3A//pkg.go.dev/image/color%23NRGBA)Color , It supports the accumulation and average - AnsiGo - In pure Go It's easy to write ANSi To PNG converter
- Arclight - Arclight Is a tool for rendering images
- bild - pure Go A collection of image processing algorithms in
- bimg - Use libvips A small device for quickly resizing and converting images Go library
- blend - Go Image processing library and rendering toolkit .
- bpg - Go Of BPG decoder .
- Chart - Generate common charts in different output formats ( The pie chart 、 Bar chart 、 Bar chart 、 Scatter plot 、 Histogram ) The library of .
- draw2d - This package provides a API To draw... On an image 2d Geometry . This library is mainly controlled by postscript、cairo、HTML5 The inspiration of canvas .
- ebiten - A cross platform open source game library , You can use it to use simple for multiple platforms API Development 2D game . Unwanted Cgo/c Compiler settings .
- egl - egl binding
- es2 - es2 binding
- fastgallery - Fast still image and video web gallery generator
- Fourcc - Video codec used in media files 、 Compressed format 、 Color and pixel format FOURCC( Four character code )(4CC) Of the identifier Go Realization .
- freetype-go - FreeType Of Go Realization
- glfw 3 - GLFW 3 Library Binding
- glfw - Bind to the window used to open 、 establish OpenGL Multi platform library for context and input management
- glh - Used to manage text 、 texture 、 Frame buffer, etc OpenGL Auxiliary function
- gl - Use glew Of OpenGL binding
- gltf - Used to group Reconciliation group glTF Of library
- glu - Bound to the OpenGL Utility library
- GLUI - Wrappers GLFW Simplify the display of images
- gmask - by Csound Adaptation Cmask Utilities
- goalsa - be used for ALSA Capture and play Go binding
- go-cairo - The wrapper of Cairo graphics library
- gocl - Go OpenCL (gocl) binding , stay Mac/Linux/Windows/Android Upper support OpenCL 1.1/1.2/2.0
- go-colorful - Color space conversion and other color space operations
- go-csnd6 - Bound to the Csound6 API
- go-csperfthread - Bound to the Csound6 API Of CsoundPerformanceThread Auxiliary class
- goexif - Retrieve... From image file EXIF Metadata
- gofb - Frame buffer library for pixel by pixel rendering
- goflac - Use libFLAC Decoding and encoding FLAC Audio binding
- go-gd - GD The carnival of
- GoGL - OpenGL Binding builder
- go-gnuplot - Gnuplot The binding of
- go-gtk3 - go Of gtk3 binding
- go-heatmap - Making hot chart The toolkit
- GoHM - Go Medium H.265/HEVC HM Video codec
- goHorde - Horde3d Rendering engine's Go binding .
- GoMacDraw - go.wde Of mac Realization
- go-openal - Go Experimental OpenAL binding
- go-opencl - OpenCL Of heterogeneous parallel programming libraries go Wrappers
- go-opencv - stay gocv / 1.x API stay opencv In the binding OpenCV / 2.x API
- Go-OpenGL - OpenGL Of Go binding
- Goop - Audio synthesizer engine
- goray - be based on Yafaray use Go Write a ray tracker
- gosc - Pure Go OSC( Open voice control ) library
- go-taglib - TagLib Of Go Wrappers , Audio metadata parser
- go-tmx - Read Tiled Of TMX Of documents Go library
- govips - Lightning fast Go Image processing and Resizing Library
- GoVisa - Go Medium H265/HEVC Bitstream analyzer
- go-vlc - binding libVLC
- go.wde - A window / mapping / Event interface
- goxscr - rewrite xscreensaver port
- graphics2d - Based on path and path transformation 2D Graphics package
- gst - GStreamer The binding of
- gumble - Mumble VoIP Protocol client library
- hgui - be based on http and gtk-webkit Of Gui tool kit .
- hsvimage - Support HSV Color models and images
- imaginary - Simple and fast for image resizing and manipulation HTTP Microservices
- imaging - Packet imaging provides basic image processing functions ( Resize 、 rotate 、 Flip 、 Cutting and so on. ) And simplified image loading and saving .
- imgproxy - Fast and secure stand-alone server for adjusting and converting remote images
- libvlc-go - VLC The media player uses libVLC 2.X/3.X/4.X Of Go binding
- merlin - Automatic video encoder
- netpbm - from Go Program read and write Netpbm Images
- opencv - OpenCV Of Go binding
- osmesa - by osmesa Binding .
- a record player - DSP The Conduit .
- Plotinum - Used to create drawings API
- portaudio - To PortAudio Of Go binding
- pulsego - by PulseAudio binding
- pulse-simple - PulseAudio Of Simple API Of Go binding , Easily capture and play audio .
- rasterx - SVG Standard rendering 、 Rasterization Library .
- Resize - Use different interpolation adjustment Image size .
- RiGO - Go Medium RenderMan Interface implementation .
- smartcrop - Content aware image clipping
- starfish - be based on SDL Simple to build Go Graphics and user input libraries
- stl - For reading 、 Writes and operations are used for 3D Printed stereolithography (.stl) Document library
- svgo - Used to create and export SVG The library of
- tag - Library for reading tag metadata and creating metadata invariant checksum for audio files :FLAC、 all IDv3 Variants and MP4(ACC、ALAC)
- tga - TARGA Image format coding / Decoding library
- tiff - be used for Go The richness of TIFF/BigTIFF/GeoTIFF decoder / Encoder .
- twilio-go - Twilio API Of Go client .
- videoinput - VideoInput (Windows) Of Go binding .
- vu - Roogoo . skeleton 3D engine .
- vulkan - Vulkan API Of Golang binding .
- webp - Go Of WebP Decoder and encoder .
- wg - Web graphics , Display real-time graphics in the browser , With user input .
- window - Mobile window optimized for real-time data
- xmorph - Deformation and deformation image
GUI And widget kits
- fyne - be based on Material Design Cross platform native GUI tool kit
- gio - portable (iOS/tvOS、Android、Linux(Wayland/X11)、macOS、Windows、FreeBSD、OpenBSD、WASM) Instant mode GUI
- go-fltk - Go Of FLTK2 GUI Toolkit binding
- GoGi - Completely native cross platform GUI tool kit
- go-gtk - GTK The binding of
- go-qt5 - be used for Go Of QT5 binding
- gothic - Tcl/Tk Go binding
- gotk3 - GTK3 Of Go binding , need GTK 3.8 edition
- go.uik - Go Of UI Kit , stay Go in .( Project closed )
- go- webkit2 - WebKitGTK+ v2 API Of Go binding ( With headless browser and JavaScript Support )
- Gowut - Gowut(Go Web UI tool kit ) It's a full-featured 、 Easy to use 、 Platform independent Web UI tool kit , In pure Go To write , No platform related native code is linked or invoked .
- GXUI - Go Cross platform UI library .
- iup - IUP Of binding
- lorca - One is used in Go Build cross platform in HTML5 GUI Small libraries for applications , Use Chrome/Chromium As UI layer .
- mdtwm - X Tile window manager
- qml - Yes Go Linguistic QML Support
- ui - Go Platform native GUI library
- webview - Tiny cross platform Web UI library . Use WebKit (Gtk/Cocoa) and MSHTML (Windows)
- wingo - use Go Write a fully functional window manager .
- Winhello - Windows GUI hello world Application examples
- wxGo - wxWidgets GUI Of Go Wrappers
- xgb - x-go-binding A branch of , Support thread safety and all X Expand .
- xgbutil - A utility library , Can be used more easily X Go binding .( Realization EWMH and ICCCM standard 、 Key binding support, etc )
- x-go-binding - X Binding of window system
Hardware
- gobot - For robots 、 Drones and the Internet of things (IoT) Of Golang frame .
- go.hid - Provide with USB Communication of man-machine interface equipment .
- gortlsdr - One librtlsdr Wrappers , Some USB DVB-T Dongle conversion to low cost 、 Common software defined radio receiver .
- hwio - SoC Board hardware I/O library , Include BeagleBone Black and Raspberry Pi.
- stressdisk - Stress test your hard drive / Memory card / USB Believe that your valuable data is restored to the previous great
Language and linguistics
- alpinocorpus-go - Alpino Readers and authors of the corpus .
- go-aspell - Go Of GNU Aspell Spell check Library Binding .
- go-edlib - And Unicode Compatible Go String comparison and editing distance algorithm library (Levenshtein、LCS、Hamming、Damerau levenshtein、Jaro-Winkler etc. ).
- go-l10n - Human localization
- go-language - Simple language detector using letter frequency data .
- goling - String similarity ( Cosine similarity ,Levenshtein distance ), Spelling check , Division
- go-ngram - n-gram Is from a given text or speech sequence n A continuous sequence of items .
- go.stringmetrics - stay Go String distance measurement implemented in
- go-tokenizer - Golang The text of Word segmentation is library
- inflect - Word Flexion Library ( Be similar to Ruby ActiveSupport::Inflector).Singularize()、Pluralize()、Underscore() etc. .
- libtextcat - libtextcat Of Go Wrappers .
- nlp - Support LSA( Latent semantic analysis ) Of Go Natural language processing libraries .
- sego - Chinese splitter .
- Snowball - Snowball stem analyzer for multiple languages
- textcat - be based on N-gram Text classification , Support utf-8 And the original text
Recording and monitoring
- colog - CoLog yes Go Prefix based hierarchical execution log
- cue - Fast and flexible context recorder . Support output to file 、 system log 、 Structured system log 、stdout/stderr、socket、Loggly、Honeybadger、Opbeat、Rollbar and Sentry.
- epazote - Director of automated microservices .
- factorlog - Really fast 、 Powerful logging infrastructure ( Support color 、 Level of detail and multiple formats )
- glog - Go Hierarchical execution log
- go-logging - Support different logging backend , Such as system log 、 Files and memory . Multiple back ends can be used , Each backend and logger has different log levels .
- gomol - A multi output log Library , Designed to support the output of additional metadata with log messages .
- gosrvmon - Self managed uptime monitoring system .
- graylog-golang - graylog-golang Is a complete implementation , Is used to GELF(Graylog Extended log format ) The message from Google Go(Golang) Send to Graylog
- haminer - For parsing and forwarding HAProxy Log library and program
- immortal - *nix Cross platform ( It's not about the operating system ) executive director
- jWalterWeatherman - And fmt.Println As easy to use seamless terminal printing and document recording
- kemba - suffer debug Inspired small debugging logging tool , Very suitable CLI Tools and Applications .
- log4go - Be similar to log4j The log package of
- logger - Write with buffered output and multiple The device performs logging
- logrus - Go The structure of 、 Can insert log record , Built in hook with third-party recorder :Airbrake、Papertrail、Loggly、Sentry …
- MailJet Live Event Dashboard - API Real-time monitoring .
- Monkit - be used for Go Flexible process data collection 、 Measure 、 monitor 、 Detection and tracking Library
- Prometheus - Monitoring system and time series database .
- rfw - Rotate file Writer - For recorders “logrotate” Sense file output
- sd - write in systemd journal , Support user-defined systemd Log fields
- seelog - Flexible scheduling 、 Filtering and formatting
- snap - Telemetry framework
- spacelog - Go The layered 、 Hierarchical and structured log Library
- statsgod - stay Go Rewriting in StatsD.
- syslog - Use this package , You can use your own handlers for different types of syslog Create your own message syslog The server
- Tideland golib - Flexible logging
- Wood - Go Configurable recorder
- ul - adopt cgo Provide macOS Sierra/OSX Unified logging function
- vlog - Go Level log on the standard log
machine learning
- Anna - Artificial neural network Aspiration, Designed to be self-learning and self-improvement Software .
- bayesian - Naive Bayes classifier .
- ctw - Weighted sum of context trees Rissanen-Langdon Arithmetic coding
- Dialex - Dialex It's an intelligent pipeline , Can interpret text and make it machine readable .
- evo - stay Go Framework for implementing evolutionary algorithm in .
- go-algs/maxflow Maxflow( Graphic cutting ) Minimize the energy storage .
- go-galib - Genetic algorithm (ga) .
- golinear - linear SVM And logical regression .
- go-mind - stay Go Neural network library constructed in
- go_ml - Linear regression 、 Logical regression 、 neural network 、 Collaborative filtering 、 Gaussian multivariate distribution .
- gott - Go The neural network of .
- go-porterstemmer - Porter Stemming High efficiency of the algorithm Go The clean room realizes .
- go-pr - Gaussian classifier .
- gorgonia - Neural network primitive library ( Such as Theano or Tensorflow, But for Go)
- mlwebservicego - Use Golang、Echo and Firebase Serve machine learning models .
- ntm - Neural Turing machine Realization
- paicehusk - perform Paice/Husk Stemmer
- tfgo - Tensorflow + Go,gopher The way .
mathematics
- bayesian - Go Naive Bayesian classification
- blas - BLAS( Basic linear algebra subroutines ) Of Go Realization
- cartconvert - Go Drawing function of programming language
- choice - from _N individual _ Generated in the project _M_ All combinations of
- clp - COIN-OR Linear programming (CLP) Library Go binding
- Cvx - Convex optimization package ,CVXOPT python The port of the package
- Decimal system - High performance arbitrary precision decimal floating point arithmetic package
- dice - Dice rolling Library
- evaler - A simple floating-point arithmetic expression evaluator
- fixed - A fixed point (Q32.32 Format ) Math library
- geom - Two dimensional geometry
- gini - SAT solver / Boolean logic tools
- gochipmunk - Bound to the Chipmunk Physics library
- gocomplex - A complex number library
- godec - Multi precision decimal arithmetic
- gofd - Concurrent finite field constraint solver .
- go- fftw - FFTW Of Go binding - The fastest Fourier transform in the West
- go-fn - Not suitable for “ mathematics ” Special functions of packages
- gographviz - be used for Go Of Graphviz DOT Language parser
- go-gt - Graph theory algorithm
- go-humanize - Format numbers for humans .
- golibs/xmath - A set of mathematical functions ( It's mainly algorithms )
- go-lm - Go The linear model in . adopt cgo -> BLAS/LAPACK Interface provide WLS And with t Regression of residuals .
- go.mahalanobis - Use go.matrix Simple realization of Mahalanobis distance
- gomat - Lightweight FAST Matrix and vector mathematics
- go_matrix_cuda - be based on CUDA Of GPU Accelerated linear algebra library
- go.matrix - Linear algebra package
- gonum - Science pack ( linear algebra 、BLAS、LAPACK、 differential 、 mapping 、 Linear programming 、 Statistics, etc )
- go-symexpr - Symbolic mathematics as having derivatives 、 Simplified and nonlinear regression AST
- gsl - GNU Science Library binding
- Hommization - Format large numbers into small human readable numbers
- interval - The compartment treatment is located in two ( It could be infinite ) An ordered set of values between boundaries .
- mathutil - package mathutil Supplementary standards are provided ‘math’ and ‘rand’ Package utility .
- mt19937_64 - Mersenne Twister int64 Random source
- array - Package arrangement generates the arrangement of slice indexes
- polyclip.go - Implementation of two-dimensional polygon Boolean operation algorithm
- primegen.go - Filtering of Atkin prime generator
- prime - Of segmented and non segmented screens Go Version to generate prime numbers
- prime number - Handle Prime Simple features .
- pso-go - Go Of PSO( Particle swarm optimization ) library .
- rand - With Mason twister support math/rand Bag 64 Bit version .
- roger - RServer Of Go client , Allows you to Go call R Program .
- sparse - Sparse matrix format for linear algebra , Support science and machine learning applications , And gonum Matrix library compatible .
- Statistics - GNU GSL Statistics (GPLv3)
- stats - Golang The statistical package of common functions is missing in the standard library .
- Tideland golib - For statistical analysis The number package
- Company - Implement types for some common physical types 、 Company 、 Converter functions and some math . library
- vector - A small vector library .
Microservices
- car_registration - Global vehicle registration data API Wrappers
- go-doudou - Based on gossip agreement and OpenAPI 3.0 Standardized decentralized microservice framework . built-in go-doudou cli Focusing on low code and rapid development can improve your productivity .
- gokit - Go Kit Microservice framework ( and Author interview ).
- go-micro - Go Micro Is a microservice Library , It provides the basic building blocks for writing fault-tolerant distributed systems on a large scale .
- kite - RPC Server and client frameworks .
All kinds of
- atexit - ordinary atexit library
- biogo - Go The basic bioinformatics functions of language .
- Breaker - Breaker Elegant degraded mode operation is achieved by wrapping unreliable inter service interface points with circuit breaker primitives .
- btcrpcclient - Enable Websocket Bitcoin JSON-RPC client .
- cast - stay Go Safely and easily convert from one type to another
- CGRates - A rating system designed for the telecom operator world
- cpu - Report the processor topology Go package
- cron - For pressing cron Scheduled run job in format (funcs) The library of
- daemonigo - One for guarding Go A simple library of applications .
- dbus-go - D-Bus Go library
- desktop - Open the file using the default application /uri( Cross platform )
- devboard - be based on Simple-Khanban Kanban application
- dioder-api - IKEA diode LED Light bar API
- doublejump - Improved Google Jump to consistency hash
- dump - dump Go Variable utility , Be similar to PHP Of var_dump
- elPrep - Used in DNA Prepare sequence alignment in the sequencing pipeline / High performance tools for mapping files
- env - Easily extract environment variables using default values
- epub - libepub Read epub Binding of content .
- EventBus - Lightweight event bus with asynchronous compatibility Go .
- faker - Generating false data 、 full name 、 Text 、 Address, etc .
- fasturl - Use Ragel High performance of state machine URL Parsing library .
- fsnotify - Go File system notification for
- function - Functional programming library , Including lazy list implementation and some of the most commonly used functions .
- GCSE - Go Code search engine . source
- generate - Runs recursively on the specified path or environment variable go generate And you can filter through regular expressions .
- go-amiando - Amiando Event management API The wrapper
- go-bit - Efficient and comprehensive bit set implementation with practical bit function .
- go-bitops - 32/64 Common bit operations of bit integers
- go-business-creditcard - verification / Generate credit card checksum / name .
- gochem - Computational chemistry / Biochemical Library .
- gocsv - be used for CSV Parsing and sending Libraries
- go.dbus - D-Bus The local Go library
- go-ean - Used to verify EAN-8 and EAN-13 And calculate the minimum utility library of checksum .
- go-eco - Functions for Ecology
- go-erx - Expand the error reporting Library
- go-eventsocket - FreeSWITCH Event socket client of telephone platform / Server Library .
- GoFakeIt - Fake data generator .65 Many different variants and examples
- go- fann - FANN Of Go binding , Artificial neural network library
- GoFlow - be used for Go Stream and data stream based programming library
- goga - Genetic algorithm framework
- gogobject - be based on GObject Introspective binding generator
- go-idn - by Go bring IDN Supported projects , Function and libidn compatible
- GoLCS - stay Go Solve the longest common sequence problem in
- golibs/as - Convert data type
- golife - Realize the life game for the command line
- go-magic - libmagic Of Go Wrappers
- go-magic - be used for Go Programming language libmagic The simple interface
- go-metrics - Coda Hale Of Metrics Library Go port
- gommap - gommap send Go The program can directly process memory mapped files and devices in a very effective way
- gomusicbrainz - MusicBrainz WS2 Client library
- goturo - NeuroSky The equipment Go The driver .
- goNI488 - National Instruments NI488.2 Universal interface bus (GPIB) Driver's Go Wrappers .
- go-osx-plist - Yes Go Of CoreFoundation Attribute list support
- go-papi - go to PAPI performance API The interface of
- go.pcsclite - pcsc-lite Encapsulation
- Go-PhysicsFS - PhysicsFS Archive access to abstract libraries Go binding .
- go.pipeline - simulation Unix Pipe Library
- go-pkg-mpd - visit MPD Library of music daemon
- go-pkg-xmlx - standard Go XML Package extension . Maintain a node tree , Allow forward / Backward browser and expose some simple single / Multi node search function
- goplan9 - Used with Plan 9 Interactive Libraries
- goPromise - Similar to the plan Go Delayed assessment
- go-qrand - stay random.irb.hr For quantum random bit generator Go client
- goraphing - from JSON Data file is a tool for generating simple graphic data structure
- go-selenium - be used for Go Of Selenium WebDriver client
- go-semvar - Semantic version ( See http://semver.org)
- go-serial - Bound to the libserialport To realize the function of serial port (cgo).
- goST - by Go Steam properties written ( Steam meter ) library . This is designed to be equivalent to XSteam The native Go.
- go-taskstats - Linux taskstats Of Go Interface
- gotenv - from
.envFile load environment variable - Gotgo - Provides a generic implementation Go The preprocessor
- go-translate - Google Language Translation Library
- go-uuid - Universal unique identifier generator and parser
- gouuid - And RFC4122 Compatible Pure Go UUID v3、4 and 5 generator
- go-villa - Some miscellaneous wrappers and small algorithms .( Sliced wrapper 、 Priority queue 、 Path dependent api、 String set type )
- go-wkhtmltopdf - wkhtmltopdf Go Binding and for HTML To PDF High level interface for conversion .
- Hranoprovod - Command line tracing
- lineup - A simple message queuing server
- relieve - Package mitigation provides the possibility to prevent damage caused by errors or vulnerabilities .
- nject - Type safe dependency injection
- nma.go - be used for Go Of NotifyMyAndroid client .
- notify - Similar to os/signal Of API File system event notification library for .
- pargo - stay Go Library for parallel programming in .
- passwd - /etc/passwd File parser
- pool - Universal work pool
- procfile - Procfile Parser
- Prometheus Instrumentation/Metrics Client - This is a use Go Write the white box detection framework of the server . It automatically exposes indicators generated programmatically , In order to be in Prometheus Time series collection and post-processing environment .
- randat - Used to generate random bytes in a code friendly form strand And code file development tools
- recycler - Than sync.Pool More flexible object recycling system . Provide constructors and destructors for objects , And control the idle length .
- replaykit - A library for replaying time series data .
- serial - Serial port API( pure Go)
- sio - package sio Allows you to access old serial garbage . It's an easy to use fork and dustin Of rs232 Package modification .
- stats - monitor Go MemStats + System statistics , For example, memory 、 Exchange and CPU, And pass UDP Send it anywhere you want to record, etc …
- symutils - Various tools and libraries for handling symbolic links
- toktok - Create and solve unique 、 Typos and error resilience 、 Human readable token
- twitterfetcher - Use Application authentication only issue Twitter API Requested tools
- udis86 - binding libudis86
- ugo - underscore.js image Go Toolbox
- Vboxgo - Like a user from Go visit VirtualBox VM.
- vk - Unofficial vk.com API Wrappers (vk.com Russian social networks )
- WUID - Extremely fast unique number generator , Than UUID fast 10-135 times .
- Wukong - use Go Write a highly scalable full-text search engine .
- xdg - XDG Basic catalog specifications and XDG User directory Go Realization .
- xplor - p9p acme File tree browser
- yubigo - Yubikey OTP Authentication and authentication API client .
music
- gmask - by Csound Adaptation Cmask Utilities
- go-csnd6 - Bound to the Csound6 API
- go-csperfthread - Bound to the Csound6 API Of CsoundPerformanceThread Auxiliary class
- go-libshout - binding libshout
- gompd - MPD( Music player daemon ) Client interface
- launchpad - Novation Launchpad Of Go client
- portmidi - binding libportmidi
Connected to the Internet
The domain name system
- bitz - BitMessage Client nodes and libraries
- dingo - Go Medium DNS client , adopt HTTPS Support Google DNS
- dns - Go Client and server implementation in
- dns - Go Medium DNS library
- dnsimple - DNSimple API The interface of
- dnss - DNS Security agent , Support DNS over HTTPS and GRPC
- domainerator - Put the word list and suffix / TLD Command line tools that combine into domain names and check whether they are registered .
- dyndnscd - A configurable dyndns client
- GeoDNS - Geographical perception authority DNS The server
- grong - Small authority DNS Name server
- hostsfile - /etc/hostsfile Reverse lookup IP => name
- lib/dns - Client or server DNS library , Support UDP、TCP and DNS over HTTPS
- mdns - Go Multicast for DNS library
- rescached - DNS Parser cache daemon
FTP
- ftp4go - Go Of FTP client , As a standard Python FTP The port of the client library starts
- ftp - package ftp Provides RFC 959 Minimum as defined in FTP client
- ftps - FTPS Protocol implementation
- goftp - FTP Client library
HTTP
- apiproxy - With configurable cache timeout HTTP/REST API agent
- prosperity - HTTP(s) Benchmarking tools ,Apache Benchmark succedaneum
- Ddosify - use Golang Write a high-performance load test tool
- eventsource - Sent by the server net/http Server events .
- fasthttp - Go Fast HTTP package
- gbench - suffer Apache Benchmark and Siege Enlightening HTTP(s) Load testing and benchmarking tools .
- gobench - HTTP/HTTPS Load testing and benchmarking tools
- go-curl - Support go func Callback libcurl binding
- goproxy - A programmable HTTP agent .
- gostax - be used for XML (StAX) The flow of API
- handlers - Helpful HTTP A collection of middleware .
- HTTPLab - HTTPLabs It allows you to check HTTP Request and fake response .
- httpmock - Relaxed simulation From external resources HTTP Respond to
- httptail - Tools will stdout/stderr Pushed to the http Block
- sling - Used to create and send API Requested Go HTTP Client library .
- pressure - Replace ApacheBench(ab), Support transaction requests , Support command line and package reference to HTTP Pressure test tools .
IMAP
- go-imap - Client and server IMAP library .
- go-imap - IMAP Client library
- go-imap - IMAP4rev1 The implementation of client , Such as RFC 3501 Described in
im
- gobir - With channel management 、 Visible support and go Extensibility of document query function IRC robot
- goexmpp - XMPP Client implementation
- goirc - Event based stateful IRC Client Framework
- go-irc - ordinary IRC Client library
- gorobot - modularization IRC robot
- go-xmpp - XMPP Client library
- hanu - To write Slack The framework of the robot
- ircflu - Support command 、 Script and network hook IRC robot
- irc.go - Go to IRC Robot frame
[mellium.im/xmpp](https://link.zhihu.com/?target=https%3A//godoc.org/mellium.im/xmpp)A low-level XMPP Client and server Libraries , Focus on good documentation and cleanliness 、 Usable API- Sirius - [ The link is broken ] use Go Write a fast and ultra lightweight chat server
- xmpp-client - have OTR( Non record ) Supported by XMPP client
NNTP
- go-nntp - be used for go Of NNTP Client and server Libraries
Protocol buffer
- gogoprotobuf - Protocol Buffers Another Go Realization , But with extensions and code generation plug-ins .
- golang_protobuf_extensions - Protocol buffer extension supporting stream message encoding and decoding .
- goprotobuf - Google Of the protocol buffer Go Realization
- protorpc - be used for Go and C++ Of Google Protocol Buffers RPC
Sync
- replican-sync - Go Medium rsync Algorithm implementation
- Rsync - Rsync Algorithm as Go library
Remote login
- telnet - package telnet by Go Programming languages provide TELNET and TELNETS Client and server implementation , Its style is similar to “net/http” library ( This is a Go Part of the standard library ), Including yes “ middleware ” Support for ;TELNETS Is safe TELNET, With security based TLS( or SSL) Connected TELNET agreement .
- telnet - And Telnet Simple interface for connection and interaction
- telnets - TELNETS( Security TELNET) Protocol client .
virtual network
- glibvnc - Use CGO by libvnc Library for packaging .
Network socket
- Gorilla WebSocket - WebSocket Protocol implementation
- lib/websocket - Used for compiling websocket Client and server Libraries ( Use epoll)
- websocketd - take STDIN/STDOUT The program is converted to WebSockets Service HTTP The server . And deal with HTML and CGI.
- ws-cli - WebSocket Command line client
- wst - A simple WebSocket Tester
zero MQ
- goczmq - CZMQv3 Wrapper for interface - Blog posts
- gozmq - 0mq (zeromq/zmq) The binding of
- zmq2 - ZeroMQ (zmq, 0MQ) edition 2 Of Go Interface .
- zmq3 - ZeroMQ (zmq, 0MQ) edition 3 Of Go Interface .
- zmq4 - ZeroMQ (zmq, 0MQ) edition 4 Of Go Interface .
Miscellaneous networks
- betwixt - Betwixt The system for equipment management and monitoring is realized OMA Lightweight M2M(LWM2M) agreement
- canopus - CoAP client / Server implementation (RFC 7252)
- chunkedreader - A lightweight Library , For from TCP Read continuous fixed size messages in the stream .
- circle - go to libcircle Distributed queues API The interface of
- createdend-go - Monitor http://www.campaignmonitor.com( E-mail activity service ) Of API client
- cwmp-proxy - reverse cwmp agent
- dmrgo - with Hadoop Stream Mapping / Reduced library
- doozerconfig - stay Doozer In the management json Coding configuration Go package
- doozerd - Consistent distributed data storage
- Go Server's Endless Zero shutdown and restart ( replace http.ListenAndServe/TLS)
- gearman-go - with Go Of Gearman API The native implementation of .
- Glue - Powerful Go and Javascript Socket library ( replace Socket.io)
- goagain - Go Zero shutdown and restart in
- Go Ajax - Go Ajax It's a JSON-RPC Realization , Designed to create AJAX Driven sites .
- gobeanstalk - Go Beanstalkd Client library
- go-camo - go to http Image proxy ( Camouflage clone ) In order to pass the SSL Routing image
- go-dbus - Connect to D-bus Library of messaging system
- go-diameter - Diameter stack and basic protocol (RFC 6733)
- go-flowrate - Data transmission rate control ( Monitor and limit )
- gogammu - A library for sending and receiving text messages
- go-icap - ICAP( Internet content adaptation protocol ) Server Library
- Gollum - One n:m multiplexer , It collects messages from different sources and broadcasts them to a set of destinations .
- go-nat-pmp - Apple And open source routers NAT-PMP Protocol client
- gottbench - ordinary TCP Benchmarking tools
- gottcheck - Check the package for general Internet access
- goodhosts - Go Simple host file in (/etc/hosts) management
- gopacket - Packet encoding / decode 、pcap/pfring/afpacket Support 、TCP Assembly, etc !
- gopcap - Around one libpcap Simple wrapper for
- goq - use Go Write a persistent message queue .
- goradius - use Go Compiling Radius client
- go-rpcgen - be used for net/rpc and AppEngine Of ProtoBuf RPC Binding builder
- gorpc - Optimized for high load RPC
- GoRTP - Go Of RTP / RTCP Stack implementation
- GoSIPs - Go Medium SIP( Session initiation protocol ) Stack
- go-smpp - SMPP 3.4 Protocol implementation
- gosndfile - binding libsndfile
- gosnmp - use GoLang Compiling SNMP library .
- go-socket.io - use Go Compiling Socket.IO The backend implementation
- gosocks - Go in Of SOCKS(SOCKS4、SOCKS4A and SOCKS5) Proxy client library .
- go-sslterminator - SSL Terminate the agent
- go-statsd-client - Go to statsd Client library
- Grumble - Mumble (VoIP) Server implementation
- handlersocket-go - Connect to InnoDB Tabular HandlerSocket Local library of interface
- HomeControl - Apple Of HomeKit Annex agreement (HAP) The implementation of the
- Hprose - Hprose Is a high-performance remote object service engine .
- httpfstream - Streaming attach and trace HTTP resources ( Use WebSockets)
- humanize-bytes - take “MiB” And so on, which is converted to the original number and returned by the command-line utility
- ipaddress - convenient ip Address function :ip -> int,int -> ip, as well as IPNet Broadcast address
- iris-go - Iris Of a decentralized messaging framework Go binding .
- iris - Point to point messaging for backend decentralization .
- kafka.go - Kafka Producers and consumers of message systems
- lcvpn - De centralization VPN The implementation of
- ldap - GO Basic of programming language LDAP v3 function .
- mbxchan - Use standards Go Distributed control of channels and remote procedure calls Go Easy communication between applications .
- mqtt - Go Medium MQTT Stack
- nagiosplugin - Used for compiling Nagios/ Monitor the package of the plug-in
- NATS - be used for Go Of NATS Distributed messaging system client
- netsnail - Low bandwidth simulator
- netstat-nat - stay Linux The system displays NAT entry
- netutils - Is used to TCP A simple interface for converting a socket into a channel .
- norm - Reliable using multicast and unicast sockets UDP
- npipe - Windows Name the pure name of the pipe Go Wrappers
- opendap - Openldap Of Wrappers
- pusher-http-go - Used with Pusher Realtime API The interaction of Go library
- QRP - QRP Is a simple packet based RPC agreement , To act as Go Of rpc A simple alternative to , Can be in UDP Up operation
- remotize - One remotize Packages and commands , Can help remotizing Method , Without changing their rpc Signature
- Resgate - be used for NATS The real-time + REST API gateway , Real time data can be used to create Web API
- rs232 - Those of us still have modems ( or arduinos) Human serial interface
- rss - RSS Parsing library .
- seamless - Use HTTP management API reverse TCP agent
- sftp -draft-ietf-secsh-filexfer-02.txt As defined in SSH File transfer protocol v3.
- shell2http - Through simple http Server execution shell command
- sockjs-go - by SockJS The client browser library implements the server-side counterpart .
- SOCKS5 The server - Extensible with access control list SOCKS5 The server
- spark - Emergency network server ( For static files )
- spdy - SPDY library , Connect to net/http, Currently, only servers are supported .
- statsd-go - Go Medium Statsd Realization , from gographite Bifurcation , Submit to Ganglia
- stompngo_examples - stompngo Of Example .
- stompngo - accord with Stomp 1.1 The client of
- tcp_fallback - Implement a simple fallback mechanism TCP agent .
- tcpmeter - TCP Throughput measurement tool
- toxiproxy - A framework for simulating network conditions .
- traceroute - Trace route implementation
- traefik - Go Modern reverse proxy in
- Uniqush - A free open source software , It provides a unified server-side notification push service for applications on mobile devices .
- uritemplates - URI Section of the template 4 Level implementation (RFC 6570)
- VDED - Vector Delta Engine Daemon - Track the increment of increasing values ( use Go To write )
- zero-downtime-daemon - Configurable zero downtime daemon ( Hot update ) frame , Suitable for any type of TCP、HTTP、FCGI service
- zeroupgrade - Upgrade web servers with zero downtime
Operating system interface
- Go FUSE File system library - be based on Russ Cox’ De novo implementation of kernel user space communication protocol .
- Go-fuse - stay Go Written in FUSE Library of file system
- go-nbd - stay Go In Chinese, it means Linux Write a library of block devices .
- go-osx-xattr - package xattr packing OS X Function to manipulate files 、 Extended properties of directories and symbolic links .
- Check / operating system - Index library for operating system measurement (Linux/MacOSX)
- service - The service will be in Windows/Linux and OSX Installation on / uninstall 、 start-up / Stop and use the program as a service ( Daemon ) function .
Other random toys 、 Experiments and sample code
- goconc - Go A collection of useful concurrency idioms and functions , The compiled
- go-crazy - go Experimental source to source compiler
- go-gtk-demo - How to be in Go Use in GTK+ The presentation of .
- go-hashmap - As Go Pure performance test Go Hashtable
- golang-examples - a pile golang Example
- GolangSortingVisualization - Go Visualization of various sorting algorithms in
- golibs - A small go Collection of bags ( It's all kinds of CI And coverage service testing Warehouse )
- goplay - Go A bunch of random applets in
- lifegame-on-golang - Go Life Game
- linear - Playing with Linear Algebra
- pl0 - PL/0 front end 、 The compiler and VM..
- go Projects in China euler - Go Projects in China Euler Solutions for
- shadergo - Use Go Perform shader tests
- travisci-golang-example - Go Of Travis-CI Example
P2P And file sharing
- DHT - Taipei seeds used Kademlia DHT node , And BitTorrent compatible
- DHT - BitTorrent DHT The protocol and DHT spider .
- ed2kcrawler - eDonkey2000 Link crawler
- gop2p - A simple p2p Application to learn go
- go-p2p - For blockchain, etc P2P modular
- GoTella - Gnutella Agreed Go Realization
- Rain - BitTorrent Clients and Libraries
- Taipei seed - BitTorrent client
- Tendermint - P2P Byzantine fault tolerance consensus and block Chain stack
- wgo - Partly based on Taipei-Torrent and gobit The simplicity of the code BitTorrent client
Programming
- go-clang - cgo Bound to the libclang Of C-API
- godeferred - jsdeferred Of port :http /cho45.stfuawsc.com/jsdeferred/
- go-galib - Genetic algorithm library
- go-intset - A library for dealing with bounded integer sets , Including multiple alternative implementations
- go-parse - A similar Parsec The parsing library of
- go-slices - Used in Go Auxiliary functions for manipulating slices in , Like the official “strings” As the package provides
- sh - One shell/bash Parser and formatter
- Shuffle - stay Go To realize Fisher Yates shuffle( or Knuth shuffle).
Resource embedding
- fileb0x - Embed files in go Simple tools in , Focus on “ customized ” Ease of use .
- go-bindata - Convert any file to manageable Go Source code package .
- go-resources - The embedded Go Non fancy resources .
- go.rice - go.rice It's a Go package , It makes processing html、js、css、 Resources such as images and templates become very easy .
- implant - Implantation allows from a range of directories ( recursive ) Embed static resources .
- statics - Embed static resources into go File for single binary compilation + And http.FileSystem + Use with symbolic links .
RPC
Scanner and parser generator
- ebnf2y - Is used to EBNF Syntax to yacc Compatible skeleton .y File utility .
- flexgo - Can generate Go Code flex edition .
- fsm - FSM(NFA,DFA) Utilities .
- gocc - Go Compilers, compilers
- golex - Lex/flex Class fast (DFA) Scanner generator .
- gopp - Go to the parser
- goyacc -Goyacc Is to generate Go The parser's yacc edition .
- lexmachine - Golang Lexical analysis framework
- Ragel - State machine compiler
- y - package y take .y (yacc) The source file is converted into data suitable for the parser generator .
- yy - yacc To yacc compiler .
Security
- acme - ACME Certificate acquisition tool
- acra - SQL Database protection suite : Strong selective encryption 、SQL Injection prevention 、 intrusion detection system
- casbin - Support MAC、RBAC、ABAC Authorization Library of access control model
- docker-slim - Container safety and optimization
- gryffin - Yahoo's large security scanner !
- hyperfox - For agents and records LAN On HTTP and HTTPs Security tools for communication
- lego - Let's encrypt the client and ACME library
- webseclab - Web Sample set of security test cases and toolkit for building new test cases
Simulation modeling
- Godes - A library for building discrete event simulation models
Sort
- Bubble sort - Bubble sort algorithm Minimum implementation
- Cocktail mixer sort - The sorting algorithm of cocktail mixer Minimum implementation
- funnelsort - Lazy funnel sort - A sort algorithm for cache forgetting
- Sortutil - Go Nesting of 、 Case insensitive and reverse sort .
- sortutil - Go standard “sort” Supplementary tools for package
- tarjan - be based on Tarjan Graph loop detection function of the algorithm
- timsort - Fast 、 Stable sequencing , Use an external comparator or sort.Interface
Source control
- Gitfile - For installation git repos Lightweight package manager
- go-deps - Analyze and recursively install Go package deps( Library functions are similar to
go get) - go-diff - go Linguistic diff The command displays two go Semantic differences in source files .
- gogitver - take git label ( Version string ) Embedded in your application
- go-many-git - Across multiple git Repository management and running commands
- go-pkgs - In all GOPATH Find all matching packages in the tree ( Library functions are similar to
go list all) - go-vcs - Clone and check VCS The version of the repository (git and hg Support )
- go-vcsurl - Loose VCS The repository URL Parsing library
- hggofmt - With a hook Mercurial/hg Expand
- nut - Nut It is a kind of management versioning Go Source code package tools , be called “nuts”.
- vcstool - VCS Abstract tools
Keep in storage
- libStorage - An open source 、 Platform independent 、 Storage configuration and orchestration framework 、 Models and API
- Minio - And Amazon S3 API Compatible object storage
- OpenEBS - For containerization of containers 、 Open source block storage , Tightly integrated into K8S And other environments , It is based on distributed block storage and storage control container
- storage - Golang Application oriented unified storage layer
String and text
- allot - CLI Placeholder and wildcard text parsing for tools and robots
- asciidoctor-go - Used for parsing and converting asciidoc Native to markup language Go modular .
- awk - Go Simple AWK Style text processing
- binarydist - Binary differences and patches
- Black Friday - Price reduction processor
- Code generator - Code generator for naming software versions
- columnize - Format slices or arrays into aligned Columns
- csvplus - Use a smooth interface 、 Inert flow operation 、 Index and connection extension standards Go code / csv package .
- csvutil - A heavy CSV Read and write library .
- dgohash - A collection of string hash functions , Include Murmur3 etc.
- Rouya series - A simple CSS The parser and lining are in Go.
- dsv - Used to process delimited values (DSV) The library of .
- flux - golang Smooth regular expressions in
- frontmatter - A method for detecting and decoding various content front-end formats Go library .
- genex - Extensions of regular expressions
- gettext-go - GNU Of gettext Support , In pure Go To write
- gettext - gettext Of Golang binding ; Function complete ,cgo
- goagrep - Fast calculation using fuzzy pre matching
- go-colortext - Change the color of text and background in the console , Apply to Windows And other systems .
- go-guess - by libguess encapsulation
- goini - analysis INI Of documents go library
- golorem - lorem ipsum generator
- go-migemo - go Of migemo Expand ( Japanese incremental text search )
- Go-ngram be used for Go Of N-gram Indexes
- goregen - Used to generate random strings from regular expressions Go library .
- goskirt - Go Of Upskirt markdown Library Binding
- gosphinx - Sphinx Independent full-text search engine Go Client interface
- govalidator - String validator and sterilizer package
- gpKMP - Use Knuth Morris Pratt Algorithm in Go String matching in
- Korean - Convenient tools to operate Korean characters
- html2text - Golang HTML To text conversion library
- The intern - Mapping strings to symbols for constant time comparison
- kasia.go - HTML And other text documents
- kview - kasia.go Simple wrapper for templates . It helps to modularize the content of the website
- Liquid - Shopify Liquid Complete implementation of the template
- logparse - The most common log format parser
- NTemplate - Nesting templates
- parse - Use reflection to define the syntax PEG Parser
- peg - Parse expression parser
- The dove - be used for Go Parsing expression syntax for (PEG) Parser generator
- The plural - No fuss about the plural , Used to format countable and contiguous ranges of values .
- polyglot - Go String translation utility
- Pretty.go - go Beautiful print of value
- raymond - Go Complete handlebar implementation in .
- rubex - A simple regular expression library , Support Ruby The regular expression syntax of . It's faster than regular expressions .
- sanitize - package sanitize Provides cleaning html And text functions .
- Scanner - A text scanner that parses primitive types , Be similar to Java Of
- segment - Norvig Implementation of recursive word segmentation algorithm
- sprig - Go Template function of template .
- strftime - strftime Realization
- strit - package strit A new type of string iterator is introduced , And many iterator constructors 、 Wrappers and combiners .
- strogonoff - Go shorthand
- strutil - Used to calculate string similarity and other string utility functions Golang indicators .
- strutil - package strutil Collection of supplementary standard string packages utils.
- text - Text paragraph wrapping and formatting
- Tideland golib - For statistical analysis Stringex package
- TySug - Alternative suggestions for keyboard layout .
- useragent - User agent string parser
- xurls - Extract... From text url
test
- assert - Assert to test .
- assert - Convenient assertion package .
- assert - With this machine go The basic assertion library used with the test , With building blocks for custom assertions
- assert - similar JUnit Assertion of , With excellent error messages
- biff - Bifurcation test framework ,BDD compatible .
- charlatan - Tool for generating fake interface implementation for test .
[code.soquee.net/testlog](https://link.zhihu.com/?target=https%3A//code.soquee.net/testlog/)Alog.Loggeragent testing.T Upper Log function , Show only the failed test log , And grouped under the test .- conex - For integration testing Docker Containers
- counterfeiter - Tools for generating self-contained and type safe simulations .
- downtest - Automatically for Go All known downstream consumers of the package run tests .
- ginkgo - Go Of BDD The test framework .
- go2xunit - take “go test -v” The output is converted to xunit XML Output
- go-assert - test Go Utility for .
- goautotest - Automatically run unit tests when making code changes
- goblin - Smallest and beautiful Go The test framework
- Gocheck - Contains a suite 、 fixture 、 Assertion 、 Good error reporting and other rich testing frameworks
- GoConvey - Browser based reports , Use
go test, Support traditional Go test , clean DSL - gocov - Code coverage testing / Analysis tools
- gomega - Ginkgo's preferred matching Library .
- gomock - Go Of simulation frame .
- GoSpec - BDD frame
- gospecify - the other one BDD frame
- go-stat - Go High performance detection / analysis
- go-tap - Go Medium TAP( Test any protocol ) Parser
- go-testdeep - Extremely flexible depth comparison , Extended test package
- go-test-report - Capture go test Output and parse it into a separate HTML file .
- gotestsum - Test runner with customizable and color output
- gotest.tools - A set of packages for writing readable tests
- gounit - be used for Go Of xunit
- GSpec - rich _ expressiveness 、 reliable 、 Concurrent and scalable _Go The test framework , It can effectively organize and verify the thinking model of software .
- httpexpect - concise 、 Declarative and easy-to-use end-to-end HTTP and REST API test
- make.go.mock - by Go Interfaces and functions generate type safe simulation .
- mspec - BDD frame , Allows you to use nature first BDD Language stub and standardize the code .
- muxy - Simulate real-world distributed system failures .
- Nitro - A quick and simple Go analyzer
- Pegomock - be based on golang/mock The simulation frame , But use with Mockito Closely related DSL .
- Attribute based with integrated shrinkage Fast Test library
- terst - A simple 、 Easy to use Go Test library
- test2doc - From your unit tests for your go The unit generates documents .
- testfixtures - Rails Such a test device , For testing database driven applications .
- testflight - Go Painless in http test
- Testify - A set of packages , There are many tools available to prove that your code will work as you expect .
- ut - Great simulation without magic .
Translator
verification
- Validator - Go Struct and Field verification , Include Cross Field、Cross Struct、Map、Slice and Array diving
- verification - Simple independent structure / Key validation
Open source gentleman , Focus on sharing GitHub、 Codecloud quality open source project , At present, many open source projects have been shared , Helped many friends Improved technology and work efficiency .
If it works , Don't forget to give it to me Point a praise ~
边栏推荐
- Wechat applet film and television comment exchange platform system graduation design (3) background function
- Introduction to excellent verilog/fpga open source project (XXVII) - small CPU
- 微软 IE 浏览器于 6 月 15 日被永久关闭
- Rely on the robustness of trusted AI to effectively identify deep forgery and help banks fight identity fraud
- In 2022, the number of mobile banking users in Q1 will reach 650million, and ESG personal financial product innovation will be strengthened
- WinForm project console debugging mode
- 智翔金泰冲刺科创板:年营收3919万亏损超3亿 拟募资40亿
- June25,2022 PMP Exam clearance manual-4
- GraphAcademy 课程讲解:《Neo4j 图数据科学基础》
- 理想L9正式发布:8月底前开始交付 零售价45.98万元
猜你喜欢

What programming does a child learn?

Introduction to Apache ActiveMQ Artemis

Atguigu---- filter

Huayang smart rushes to Shenzhen Stock Exchange: it plans to raise 400million Fosun Weiying as a shareholder

【4. 高精度加法】

Creating and extending XFS file system based on LVM

C ++ Primer 第2章 变量和基本类型 总结

Asemi Schottky diode 1N5819 parameters, 1N5819 replacement, 1N5819 source

How to use tensorboard add_ histogram

Wechat applet film and television review and exchange platform system graduation design completion (7) Interim inspection report
随机推荐
[Chapter 26 medical impact segmentation system based on minimum error method and region growth -- matlab deep learning practical GUI project]
What programming does a child learn?
Courses learned
Parallel search DSU
rt_ Message queue of thread
Neo4j 智能供应链应用源代码简析
PostgreSQL fetches data according to the size of the time field
import和require在浏览器和node环境下的实现差异
Get to know unity3d (project structure, third-party plug-in of probuilder)
rt_thread的消息队列
最新发布:Neo4j 图数据科学 GDS 2.0 和 AuraDS GA
【7. 高精度除法】
Asemi Schottky diode 1N5819 parameters, 1N5819 replacement, 1N5819 source
目标检测之——labelImg标注工具使用方法
使用 Neo4j 沙箱学习 Neo4j 图数据科学 GDS
Input system learning ----- inputfilter
Technical exploration: 360 digital subjects won the first place in the world in ICDAR OCR competition
Qt程序怎么实现选中ListWidget中的某一行为默认选中
Minecraft 1.18.2 biochemical 8 module version 1.3 3D objects + more complex villages
Atguigu---- collect form data