A curated list with Github stars and forks stats based on awesome awesome-go
A curated list of awesome Go frameworks, libraries and software. Inspired by awesome-python.
Please take a quick gander at the contribution guidelines first. Thanks to all contributors; you rock!
If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!
-
- Audio & Music
- Authentication & OAuth
- Command Line
- Configuration
- Continuous Integration
- CSS Preprocessors
- Data Structures
- Database
- Database Drivers
- Date & Time
- Distributed Systems
- Embeddable Scripting Languages
- Financial
- Forms
- Game Development
- Generation & Generics
- Go Compilers
- Goroutines
- GUI
- Hardware
- Images
- Logging
- Machine Learning
- Messaging
- Miscellaneous
- Natural Language Processing
- Networking
- OpenGL
- ORM
- Package Management
- Query Language
- Resource Embedding
- Science and Data Analysis
- Security
- Serialization
- Template Engines
- Testing
- Text Processing
- Third-party APIs
- Utilities
- Validation
- Version Control
- Video
- Web Frameworks
- Windows
Libraries for manipulating audio.
- flac - A native Go FLAC decoder. โญ 48 ๐ด 5
- flac - A native Go FLAC decoder. โญ 23 ๐ด 9
- go-sox - libsox bindings for go. โญ 36 ๐ด 6
- go_mediainfo - libmediainfo bindings for go. โญ 5 ๐ด 0
- mix - Sequence-based Go-native audio mixer for music apps. โญ 20 ๐ด 7
- mp3 - A native Go MP# decoder. โญ 16 ๐ด 3
- music-theory - Music theory models in Go. โญ 101 ๐ด 14
- PortAudio - Go bindings for the PortAudio audio I/O library. โญ 46 ๐ด 16
- portmidi - Go bindings for PortMidi. โญ 86 ๐ด 23
- taglib - Go bindings for taglib. โญ 40 ๐ด 17
- vorbis - A "native" Go Vorbis decoder (uses CGO, but has no dependencies). โญ 9 ๐ด 3
- waveform - Go package capable of generating waveform images from audio streams. โญ 125 ๐ด 7
Libraries for implementing authentications schemes.
- authboss - A modular authentication system for the web. It tries to remove as much boilerplate and "hard things" as possible so that each time you start a new web project in Go, you can plug it in, configure, and start building your app without having to build an authentication system each time. โญ 626 ๐ด 22
- Go-AWS-Auth - AWS (Amazon Web Services) request signing library. โญ 127 ๐ด 24
- go-jose - A fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. โญ 510 ๐ด 59
- go.auth - Authentication API for Go web applications. โญ 312 ๐ด 27
- gologin - chainable handlers for login with OAuth1 and OAuth2 authentication providers. โญ 637 ๐ด 30
- gorbac - provides a lightweight role-based access control (RBAC) implementation in Golang. โญ 352 ๐ด 70
- goth - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple provides out of the box. โญ 709 ๐ด 77
- httpauth - HTTP Authentication middleware. โญ 93 ๐ด 11
- jwt-go - Golang implementation of JSON Web Tokens (JWT). โญ 1219 ๐ด 148
- oauth2 - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. โญ 742 ๐ด 218
- osin - Golang OAuth2 server library. โญ 886 ๐ด 177
- permissions2 - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. โญ 167 ๐ด 10
- yubigo - a Yubikey client package that provides a simple API to integrate the Yubico Yubikey into a go application. โญ 58 ๐ด 6
Libraries for building standard or basic Command Line applications
- cli - A feature-rich and easy to use command-line package based on golang tag โญ 164 ๐ด 12
- cli-init - The easy way to start building Golang command line application. โญ 500 ๐ด 45
- climax - An alternative CLI with "human face", in spirit of Go command โญ 93 ๐ด 6
- cobra - A Commander for modern Go CLI interactions โญ 2124 ๐ด 191
- codegangsta/cli - A small package for building command line apps in Go. โญ 4265 ๐ด 412
- docopt.go - A command-line arguments parser that will make you smile. โญ 675 ๐ด 49
- go-flags - go command line option parser โญ 591 ๐ด 84
- kingpin - A command line and flag parser supporting sub commands. โญ 648 ๐ด 56
- liner - A Go readline-like library for command-line interfaces. โญ 307 ๐ด 51
- mitchellh/cli - A Go library for implementing command-line interfaces. โญ 413 ๐ด 33
- mow.cli - A Go library for building CLI applications with sophisticated flag and argument parsing and validation. โญ 353 ๐ด 19
- readline - A pure golang implementation that provide most of features in GNU-Readline under MIT license. โญ 581 ๐ด 31
- ukautz/clif - A small command line interface framework. โญ 65 ๐ด 7
- wlog - A simple logging interface that supports cross-platform color and concurrency. โญ 3 ๐ด 0
- wmenu - An easy to use menu structure for cli applications that prompts users to make choices. โญ 2 ๐ด 1
Libraries for building Console Applications and Console User Interfaces
- chalk - Intuitive package for prettifying terminal/console output. โญ 158 ๐ด 11
- color - Versatile package for colored terminal output. โญ 920 ๐ด 73
- colourize - Go library for ANSI colour text in terminals. โญ 8 ๐ด 2
- go-colortext - Go library for color output in terminals. โญ 143 ๐ด 12
- gocui - Minimalist Go library aimed at creating Console User Interfaces. โญ 688 ๐ด 55
- gommon/color - Style terminal text. โญ 120 ๐ด 17
- termbox-go - Termbox is a library for creating cross-platform text-based interfaces. โญ 1476 ๐ด 144
- termtables - A Go port of the Ruby library terminal-tables for simple ASCII table generation as well as providing markdown and HTML output โญ 59 ๐ด 8
- termui - Go terminal dashboard based on termbox-go and inspired by blessed-contrib. โญ 4740 ๐ด 216
- uilive - A library for updating terminal output in realtime. โญ 437 ๐ด 11
- uiprogress - A flexible library to render progress bars in terminal applications. โญ 804 ๐ด 24
- uitable - A library to improve readability in terminal apps using tabular data. โญ 335 ๐ด 10
Libraries for configuration parsing
- config - JSON or YAML configuration wrapper with environment variables and flags parsing. โญ 74 ๐ด 15
- configure - Provides configuration through multiple sources, including JSON, flags and environment variables. โญ 9 ๐ด 3
- env - Parse environment variables to Go structs (with defaults). โญ 111 ๐ด 7
- envcfg - Un-marshaling environment variables to Go structs. โญ 76 ๐ด 4
- envconf - Configuration from environment โญ 3 ๐ด 1
- envconfig - Read your configuration from environment variables. โญ 90 ๐ด 7
- gcfg - read INI-style configuration files into Go structs; supports user-defined types and subsections โญ 34 ๐ด 13
- gofigure - Go application configuration made easy โญ 37 ๐ด 2
- ingo - Flags persisted in an ini-like config file โญ 8 ๐ด 1
- ini - Go package for read and write INI files โญ 287 ๐ด 54
- mini - A golang package for parsing ini-style configuration files โญ 81 ๐ด 9
- store - A lightweight configuration manager for Go โญ 41 ๐ด 2
- viper - Go configuration with fangs โญ 1617 ๐ด 179
Tools for help with continuous integration
- drone - Drone is a Continuous Integration platform built on Docker, written in Go โญ 6971 ๐ด 793
- goveralls - Go integration for Coveralls.io continuous code coverage tracking system. โญ 263 ๐ด 49
- overalls - Multi-Package go project coverprofile for tools like goveralls โญ 19 ๐ด 3
Libraries for preprocessing CSS files
- c6 - High performance SASS compatible-implementation compiler written in Go โญ 343 ๐ด 17
- gcss - Pure Go CSS Preprocessor. โญ 342 ๐ด 18
- go-libsass - Go wrapper to the 100% Sass compatible libsass project. โญ 28 ๐ด 3
Generic datastructures and algorithms in Go.
- binpacker - Binary packer and unpacker helps user build custom binary stream. โญ 14 ๐ด 1
- bitset - Go package implementing bitsets. โญ 199 ๐ด 49
- bloom - Bloom filters implemented in Go. โญ 83 ๐ด 10
- boomfilters - probabilistic data structures for processing continuous, unbounded streams โญ 701 ๐ด 34
- count-min-log - A Go implementation Count-Min-Log sketch: Approximately counting with approximate counters (Like Count-Min sketch but using less memory). โญ 20 ๐ด 3
- cuckoofilter - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go. โญ 150 ๐ด 8
- encoding - Integer Compression Libraries for Go. โญ 42 ๐ด 7
- go-adaptive-radix-tree - A Go implementation of Adaptive Radix Tree. โญ 1 ๐ด 1
- go-datastructures - a collection of useful, performant, and thread-safe data structures โญ 2513 ๐ด 188
- go-geoindex - In-memory geo index. โญ 174 ๐ด 18
- golang-set - Thread-Safe and Non-Thread-Safe high-performance sets for Go. โญ 376 ๐ด 54
- goskiplist - A skip list implementation in Go. โญ 107 ๐ด 26
- mafsa - MA-FSA implementation with Minimal Perfect Hashing โญ 207 ๐ด 12
- roaring - Go package implementing compressed bitsets. โญ 125 ๐ด 19
- skiplist - Skiplist implementation in Go โญ 29 ๐ด 7
- trie - Trie implementation in Go โญ 123 ๐ด 15
- ttlcache - An in-memory LRU string-interface{} map with expiration for golang โญ 26 ๐ด 5
- willf/bloom - Go package implementing Bloom filters. โญ 236 ๐ด 45
Databases implemented in Go.
- bolt - A low-level key/value database for Go. โญ 4236 ๐ด 328
- cache2go - An in-memory key:value cache which supports automatic invalidation based on timeouts. โญ 76 ๐ด 31
- cockroach - A Scalable, Geo-Replicated, Transactional Datastore โญ 7025 ๐ด 681
- couchcache - A RESTful caching micro-service backed by Couchbase server. โญ 16 ๐ด 2
- dgraph - Scalable, Distributed, Low Latency, High Throughput Graph Database. โญ 1258 ๐ด 49
- diskv - A home-grown disk-backed key-value store. โญ 358 ๐ด 35
- forestdb - Go bindings for ForestDB. โญ 19 ๐ด 3
- GCache - Cache library with support for expirable Cache, LFU, LRU and ARC. โญ 97 ๐ด 11
- go-cache - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications. โญ 529 ๐ด 103
- goleveldb - An implementation of the LevelDB key/value database in the Go. โญ 1070 ๐ด 141
- groupcache - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. โญ 4535 ๐ด 465
- influxdb - Scalable datastore for metrics, events, and real-time analytics โญ 8200 ๐ด 1122
- ledisdb - Ledisdb is a high performance NoSQL like Redis based on LevelDB. โญ 1629 ๐ด 184
- levigo - Levigo is a Go wrapper for LevelDB. โญ 270 ๐ด 59
- prometheus - Monitoring system and time series database. โญ 4959 ๐ด 419
- rqlite - Replicated SQLite, using Raft consensus. โญ 1631 ๐ด 84
- tidb - TiDB is a distributed SQL database. Inspired by the design of Google F1. โญ 4013 ๐ด 480
- tiedot - Your NoSQL database powered by Golang. โญ 1544 ๐ด 131
- Tile38 - A geolocation DB with spatial index and realtime geofencing. โญ 1128 ๐ด 42
Database tools.
- go-mysql - A go toolset to handle MySQL protocol and replication. โญ 230 ๐ด 74
- go-mysql-elasticsearch - Sync your MySQL data into Elasticsearch automatically. โญ 294 ๐ด 59
- goose - Database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts. โญ 9 ๐ด 0
- kingshard - kingshard is a high performance proxy for MySQL powered by Golang. โญ 1763 ๐ด 349
- migrate - Database migration handling in Golang support MySQL,PostgreSQL,Cassandra and SQLite. โญ 626 ๐ด 107
- myreplication - MySql binary log replication listener. Support statement and row based replication. โญ 50 ๐ด 16
- orchestrator - MySQL replication topology manager & visualizer โญ 481 ๐ด 94
- pgweb - A web-based PostgreSQL database browser โญ 3431 ๐ด 179
- pravasan - Simple Migration tool - currently for MySQL but planning to support soon for Postgres, SQLite, MongoDB, etc., โญ 11 ๐ด 3
- sql-migrate - Database migration tool. Allows embedding migrations into the application using go-bindata. โญ 466 ๐ด 32
- vitess - vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services. โญ 3494 ๐ด 450
SQL query builder, libraries for building and using SQL.
- dat - Go Postgres Data Access Toolkit โญ 310 ๐ด 18
- Dotsql - Go library that helps you keep sql files in one place and use it with ease. โญ 227 ๐ด 12
- goqu - An idiomatic SQL builder and query library. โญ 258 ๐ด 17
- igor - Abstraction layer for PostgreSQL that supports advanced functionality and uses gorm-like syntax. โญ 51 ๐ด 0
- ozzo-dbx - Powerful data retrieval methods as well as DB-agnostic query building capabilities. โญ 88 ๐ด 5
- scaneo - Generate Go code to convert database rows into arbitrary structs. โญ 69 ๐ด 2
- sqrl - SQL query builder, fork of Squirrel with improved performance. โญ 40 ๐ด 2
- Squirrel - Go library that helps you build SQL queries. โญ 823 ๐ด 67
- xo - Generate idiomatic Go code for databases based on existing schema definitions or custom queries supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server. โญ 465 ๐ด 24
Libraries for connecting and operating databases.
-
Relational Databases
- firebirdsql - Firebird RDBMS SQL driver for Go โญ 43 ๐ด 10
- go-adodb - Microsoft ActiveX Object DataBase driver for go that using database/sql. โญ 34 ๐ด 14
- go-bqstreamer - BigQuery fast and concurrent stream insert. โญ 80 ๐ด 8
- go-mssqldb - Microsoft MSSQL driver prototype in go language. โญ 329 ๐ด 71
- go-oci8 - Oracle driver for go that using database/sql. โญ 134 ๐ด 89
- go-sql-driver/mysql - MySQL driver for Go. โญ 2410 ๐ด 580
- go-sqlite3 - SQLite3 driver for go that using database/sql. โญ 1247 ๐ด 306
- gofreetds Microsoft MSSQL driver. Go wrapper over FreeTDS. โญ 36 ๐ด 18
- pgx - PostgreSQL driver supporting features beyond those exposed by database/sql. โญ 575 ๐ด 78
- pq - Pure Go Postgres driver for database/sql. โญ 2111 ๐ด 319
-
NoSQL Databases
- aerospike-client-go - Aerospike client in Go language. โญ 168 ๐ด 58
- arangolite - Lightweight golang driver for ArangoDB. โญ 28 ๐ด 5
- cayley - A graph database with support for multiple backends. โญ 7526 ๐ด 649
- dynago - Dynago is a principle of least surprise client for DynamoDB โญ 16 ๐ด 7
- go-couchbase - Couchbase client in Go โญ 210 ๐ด 68
- go-couchdb - Yet another CouchDB HTTP API wrapper for Go โญ 32 ๐ด 13
- gocb - Official Couchbase Go SDK โญ 174 ๐ด 38
- gocql - A Go language driver for Apache Cassandra.
- gomemcache - memcache client library for the Go programming language. โญ 620 ๐ด 176
- gorethink - Go language driver for RethinkDB โญ 923 ๐ด 95
- mgo - MongoDB driver for the Go language that implements a rich and well tested selection of features under a very simple API following standard Go idioms.
- neo4j - Neo4j Rest API Bindings for Golang โญ 15 ๐ด 2
- Neo4j-GO - Neo4j REST Client in golang. โญ 63 ๐ด 14
- neoism - Neo4j client for Golang โญ 255 ๐ด 52
- redigo - Redigo is a Go client for the Redis database. โญ 2233 ๐ด 400
- redis - Redis client for Golang โญ 881 ๐ด 147
- redis - A simple, powerful Redis client for Go. โญ 503 ๐ด 171
- redis - Redis-protocol compatible TCP servers/services. โญ 88 ๐ด 6
-
Search and Analytic Databases
- bleve - A modern text indexing library for go. โญ 2530 ๐ด 216
- elastic - Elasticsearch client for Google Go. โญ 659 ๐ด 161
- elastigo - A Elasticsearch client library. โญ 757 ๐ด 211
- goes - A library to interact with Elasticsearch. โญ 71 ๐ด 25
- skizze - A probabilistic data-structures service and storage. โญ 20 ๐ด 4
Libraries for working with dates and times.
- durafmt - A time duration formatting library for Go. โญ 123 ๐ด 3
- go-persian-calendar - The implementation of the Persian (Solar Hijri) Calendar in Go (golang). โญ 7 ๐ด 0
- goweek - Library for working with week entity in golang. โญ 7 ๐ด 1
- now - Now is a time toolkit for golang. โญ 624 ๐ด 41
- NullTime - Nullable time.Time โญ 1 ๐ด 1
- timeutil - Useful extensions (Timedelta, Strftime, ...) to the golang's time package. โญ 103 ๐ด 4
Packages that help with building Distributed Systems.
- celeriac - A library for adding support for interacting and monitoring Celery workers, tasks and events in Go โญ 14 ๐ด 2
- flowgraph - MPI-style ready-send coordination layer. โญ 14 ๐ด 0
- glow - Easy-to-Use scalable distributed big data processing, Map-Reduce, DAG execution, all in pure Go. โญ 968 ๐ด 66
- go-jump - A port of Google's "Jump" Consistent Hash function. โญ 71 ๐ด 7
- gorpc - Simple, fast and scalable RPC library for high load. โญ 239 ๐ด 30
- grpc-go - The Go language implementation of gRPC. HTTP/2 based RPC. โญ 1813 ๐ด 277
- micro - A pluggable microservice toolkit and distributed systems platform. โญ 2099 ๐ด 113
- NATS - A lightweight, high performance messaging system for microservices, IoT, and cloud native systems. โญ 2140 ๐ด 249
- raft - Golang implementation of the Raft consensus protocol, by HashiCorp. โญ 638 ๐ด 91
- torrent - BitTorrent client package. โญ 1163 ๐ด 67
- dht - BitTorrent Kademlia DHT implementation. โญ 1163 ๐ด 67
- go-peerflix - Video streaming torrent client. โญ 161 ๐ด 25
Libraries that implement email creation and sending
- douceur - CSS inliner for your HTML emails. โญ 51 ๐ด 5
- email - A robust and flexible email library for Go. โญ 682 ๐ด 67
- go-dkim - A DKIM library, to sign & verify email. โญ 16 ๐ด 5
- Gomail - Gomail is a very simple and powerful package to send emails. โญ 904 ๐ด 64
- Hectane - Lightweight SMTP client providing an HTTP API โญ 59 ๐ด 4
- MailHog - Email and SMTP testing with web and API interface โญ 947 ๐ด 53
- SendGrid - SendGrid's Go library for sending email โญ 195 ๐ด 49
- smtp - SMTP server protocol state machine โญ 23 ๐ด 4
Embedding other languages inside your go code
- agora - Dynamically typed, embeddable programming language in Go โญ 223 ๐ด 22
- anko - Scriptable interpreter written in Go โญ 267 ๐ด 24
- gisp - Simple LISP in Go โญ 325 ๐ด 22
- go-duktape - Duktape JavaScript engine bindings for Go โญ 343 ๐ด 30
- go-lua - A port of the Lua 5.2 VM to pure Go โญ 684 ๐ด 35
- go-php - PHP bindings for Go โญ 130 ๐ด 16
- go-python - naive go bindings to the CPython C-API โญ 377 ๐ด 37
- golua - Go bindings for Lua C API โญ 271 ๐ด 65
- gopher-lua - a Lua 5.1 VM and compiler written in Go โญ 1207 ๐ด 92
- otto - A JavaScript interpreter written in Go โญ 2181 ๐ด 177
- purl - Perl 5.18.2 embedded in Go โญ 11 ๐ด 0
Packages for accounting and finance
- accounting - money and currency formatting for golang โญ 205 ๐ด 7
- decimal - Arbitrary-precision fixed-point decimal numbers โญ 289 ๐ด 49
Libraries for working with forms.
- bind - Bind form data to any Go values โญ 14 ๐ด 2
- binding - Binds form and JSON data from net/http Request to struct. โญ 476 ๐ด 39
- conform - Keeps user input in check. Trims, sanitizes & scrubs data based on struct tags. โญ 17 ๐ด 1
- formam - decode form's values into a struct. โญ 50 ๐ด 2
- forms - A framework-agnostic library for parsing and validating form/JSON data which supports multipart forms and files. โญ 60 ๐ด 3
- gorilla/csrf - CSRF protection for Go web applications & services. โญ 117 ๐ด 16
- nosurf - A CSRF protection middleware for Go. โญ 640 ๐ด 41
Awesome game development libraries.
- Ebiten - A simple SNES-like 2D game library in Go โญ 113 ๐ด 8
- engo - Engo is an open-source 2D game engine written in Go. It follows the Entity-Component-System paradigm. โญ 202 ๐ด 28
- GarageEngine - 2d game engine written in Go working on OpenGL. โญ 230 ๐ด 18
- glm - A performance oriented vector, matrix, geometry library. โญ 17 ๐ด 2
- glop - Glop (Game Library Of Power) is a fairly simple cross-platform game library. โญ 70 ๐ด 7
- go-astar - Go implementation of the A* path finding algorithm โญ 149 ๐ด 12
- go-collada - Go package for working with the Collada file format. โญ 8 ๐ด 0
- go-sdl2 - Go bindings for the Simple DirectMedia Layer. โญ 383 ๐ด 76
- go3d - A performance oriented 2D/3D math package for Go โญ 106 ๐ด 12
- gonet - A game server skeleton implemented with golang โญ 668 ๐ด 242
- Leaf - A lightweight game server framework โญ 670 ๐ด 205
- lux - A 3D physically based rendering engine. โญ 36 ๐ด 2
- math - A float32 native version of standard library math. โญ 9 ๐ด 0
- termloop - Terminal-based game engine for Go, built on top of Termbox โญ 623 ๐ด 29
- tornago - A 3D rigid body physics engine in pure Go. โญ 22 ๐ด 1
Tools to enhance the language with features like generics via code generation
- gen - Code generation tool for โgenericsโ-like functionality. โญ 685 ๐ด 44
- go-linq - .NET LINQ-like query methods for Go. โญ 776 ๐ด 49
- interfaces - Command line tool for generating interface definitions. โญ 70 ๐ด 1
- pkgreflect - A Go preprocessor for package scoped reflection. โญ 32 ๐ด 5
Tools for compiling Go to other languages
- gopherjs - A compiler from Go to JavaScript. โญ 3869 ๐ด 175
- llgo - LLVM-based compiler for Go. โญ 743 ๐ด 59
- tardisgo - Golang to Haxe to CPP/CSharp/Java/JavaScript transpiler. โญ 309 ๐ด 15
Tools for managing and working with Goroutines
- grpool - Lightweight Goroutine pool. โญ 108 ๐ด 7
- pool - Go consumer goroutine pool for easy goroutine handling + time saving. โญ 48 ๐ด 3
- tunny - A goroutine pool for golang. โญ 318 ๐ด 24
Libraries for building GUI Applications
- go-gtk - Go bindings for GTK
- go-qml - QML support for the Go language โญ 1660 ๐ด 161
- goqt - Golang bindings to the Qt cross-platform application framework. โญ 1013 ๐ด 70
- gosx-notifier - OSX Desktop Notifications library for Go. โญ 294 ๐ด 22
- gotk3 - Go bindings for GTK3. โญ 79 ๐ด 22
- sciter - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. โญ 275 ๐ด 30
- systray - Cross platform Go library to place an icon and menu in the notification area โญ 80 ๐ด 12
- trayhost - Cross-platform Go library to place an icon in the host operating system's taskbar. โญ 41 ๐ด 5
- ui - Platform-native GUI library for Go. โญ 2946 ๐ด 182
- walk - Windows application library kit for Go. โญ 1319 ๐ด 258
Libraries, tools, and tutorials for interacting with hardware.
See go-hardware for a comprehensive list. โญ 359 ๐ด 23
Libraries for manipulating images.
- bimg - Small package for fast and efficient image processing using libvips โญ 170 ๐ด 32
- geopattern - Create beautiful generative image patterns from a string. โญ 851 ๐ด 36
- gift - Package of image processing filters. โญ 719 ๐ด 48
- go-cairo - Go binding for the cairo graphics library. โญ 52 ๐ด 13
- go-gd - Go binding for GD library โญ 39 ๐ด 12
- go-nude - Nudity detection with Go. โญ 183 ๐ด 20
- go-opencv - Go bindings for OpenCV. โญ 394 ๐ด 72
- go-webcolors - Port of webcolors library from Python to Go. โญ 17 ๐ด 0
- imagick - Go binding to ImageMagick's MagickWand C API. โญ 424 ๐ด 69
- imaginary - Fast and simple HTTP microservice for image resizing โญ 764 ๐ด 53
- imaging - Simple Go image processing package. โญ 832 ๐ด 95
- img - A selection of image manipulation tools. โญ 76 ๐ด 2
- mpo - A decoder and conversion tool for MPO 3D Photos. โญ 3 ๐ด 1
- picfit - An image resizing server written in Go โญ 488 ๐ด 37
- resize - Image resizing for the Go with common interpolation methods. โญ 1081 ๐ด 103
- rez - Image resizing in pure Go and SIMD. โญ 117 ๐ด 6
- smartcrop - Finds good crops for arbitrary images and crop sizes โญ 291 ๐ด 26
- svgo - Go Language Library for SVG generation. โญ 738 ๐ด 63
- tga - Package tga is a TARGA image format decoder/encoder. โญ 12 ๐ด 5
Libraries for generating and working with log files.
- glog - Leveled execution logs for Go. โญ 987 ๐ด 194
- go-log - Log lib supports level and multi handlers. โญ 14 ๐ด 5
- go-log - A log4j implementation in Go. โญ 19 ๐ด 7
- go-logger - Simple logger of Go Programs, with level handlers. โญ 155 ๐ด 16
- gologger - Simple easy to use log lib for go, logs in Colored Cosole, Simple Console, File or Elasticsearch. โญ 19 ๐ด 4
- log - Structured logging package for Go. โญ 262 ๐ด 16
- log - Simple, configurable and scalable Structured Logging for Go. โญ 165 ๐ด 6
- log-voyage - Full-featured logging saas written in golang. โญ 59 ๐ด 6
- log15 - Simple, powerful logging for Go โญ 448 ๐ด 56
- logex - An golang log lib, supports tracking and level, wrap by standard log lib โญ 24 ๐ด 2
- logger - Minimalistic logging library for Go. โญ 64 ๐ด 7
- logrus - a structured logger for Go. โญ 2803 ๐ด 391
- logrusly - logrus plug-in to send errors to a Loggly. โญ 6 ๐ด 4
- logutils - Utilities for slightly better logging in Go (Golang) extending the standard logger. โญ 134 ๐ด 13
- logxi - A 12-factor app logger that is fast and makes you happy. โญ 249 ๐ด 17
- lumberjack - Simple rolling logger, implements io.WriteCloser. โญ 308 ๐ด 41
- mlog - A simple logging module for go, with 5 levels, an optional rotating logfile feature and stdout/stderr output. โญ 4 ๐ด 7
- ozzo-log - High performance logging supporting log severity, categorization, and filtering. Can send filtered log messages to various targets (e.g. console, network, mail). โญ 44 ๐ด 8
- seelog - logging functionality with flexible dispatching, filtering, and formatting. โญ 678 ๐ด 125
- slf - The Structured Logging Facade (SLF) for Go (like SLF4J but structured and for Go) โญ 27 ๐ด 1
- slog - The reference implementation of the Structured Logging Facade (SLF) for Go โญ 20 ๐ด 1
- stdlog - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs. โญ 28 ๐ด 4
- tail - A Go package striving to emulate the features of the BSD tail program. โญ 509 ๐ด 117
- xlog - A structured logger for
net/context
aware HTTP handlers with flexible dispatching. โญ 76 ๐ด 4
Libraries for Machine Learning.
- bayesian - Naive Bayesian Classification for Golang. โญ 316 ๐ด 43
- CloudForest - Fast, flexible, multi-threaded ensembles of decision trees for machine learning in pure Go. โญ 357 ๐ด 47
- gago - Multi-population, flexible, parallel genetic algorithm. โญ 130 ๐ด 6
- go-fann - Go bindings for Fast Artificial Neural Networks(FANN) library. โญ 74 ๐ด 16
- go-galib - Genetic Algorithms library written in Go / golang โญ 119 ๐ด 26
- go-pr - Pattern recognition package in Go lang. โญ 36 ๐ด 8
- gobrain - Neural Networks written in go โญ 94 ๐ด 14
- godist - Various probability distributions, and associated methods. โญ 7 ๐ด 2
- goga - Genetic algorithm library for Go. โญ 34 ๐ด 3
- GoLearn - General Machine Learning library for Go. โญ 2847 ๐ด 316
- golinear - liblinear bindings for Go โญ 26 ๐ด 6
- goml - On-line Machine Learning in Go โญ 470 ๐ด 31
- goRecommend - Recommendation Algorithms library written in Go. โญ 44 ๐ด 2
- libsvm - libsvm golang version derived work based on LIBSVM 3.14. โญ 39 ๐ด 6
- mlgo - This project aims to provide minimalistic machine learning algorithms in Go. โญ 0 ๐ด 0
- neural-go - A multilayer perceptron network implemented in Go, with training via backpropagation. โญ 41 ๐ด 8
- probab - Probability distribution functions. Bayesian inference. Written in pure Go. โญ 1 ๐ด 0
- regommend - Recommendation & collaborative filtering engine โญ 109 ๐ด 10
- shield - Bayesian text classifier with flexible tokenizers and storage backends for Go โญ 79 ๐ด 21
Libraries that implement messaging systems
- Centrifugo - Real-time messaging (Websockets or SockJS) server in Go. โญ 1043 ๐ด 58
- dbus - Native Go bindings for D-Bus. โญ 82 ๐ด 43
- emitter - Emits events using Go way, with wildcard, predicates, cancellation possibilities and many other good wins. โญ 61 ๐ด 3
- EventBus - The lightweight event bus with async compatibility. โญ 144 ๐ด 18
- go-longpoll - PubSub with long polling. โญ 7 ๐ด 0
- go-notify - Native implementation of the freedesktop notification spec. โญ 12 ๐ด 5
- go-nsq - the official Go package for NSQ โญ 596 ๐ด 140
- gopush-cluster - gopush-cluster is a go push server cluster. โญ 1239 ๐ด 380
- gorush - A push notification server using APNs2 and google GCM. โญ 122 ๐ด 9
- machinery - An asynchronous task queue/job queue based on distributed message passing. โญ 841 ๐ด 82
- mangos - Pure go implementation of the Nanomsg ("Scalable Protocols") with transport interoperability. โญ 867 ๐ด 67
- NATS Go Client - A lightweight and high performance publish-subscribe and distributed queueing messaging system - this is the Go library. โญ 717 ๐ด 111
- oplog - A generic oplog/replication system for REST APIs โญ 68 ๐ด 10
- pubsub - A simple pubsub package for go. โญ 87 ๐ด 12
- sarama - A Go library for Apache Kafka. โญ 1053 ๐ด 188
- Uniqush-Push - A redis backed unified push service for server-side notifications to mobile devices. โญ 827 ๐ด 130
- zmq4 - A Go interface to ZeroMQ version 4. Also available for version 3 and version 2. โญ 388 ๐ด 60
These libraries were placed here because none of the other categories seemed to fit
- afero - A FileSystem Abstraction System for Go. โญ 600 ๐ด 51
- archiver - Library and command for making and extracting .zip and .tar.gz archives โญ 100 ๐ด 6
- autoflags - Go package to automatically define command line flags from struct fields. โญ 12 ๐ด 0
- banner - Add beautiful banners into your Go applications. โญ 86 ๐ด 7
- browscap_go - GoLang Library for Browser Capabilities Project. โญ 17 ๐ด 5
- datacounter - Go counters for readers/writer/http.ResponseWriter. โญ 4 ๐ด 0
- go-chat-bot - IRC, Slack & Telegram bot written in Go. โญ 76 ๐ด 16
- go-commons-pool - A generic object pool for Golang. โญ 256 ๐ด 31
- go-multierror - A Go (golang) package for representing a list of errors as a single error. โญ 194 ๐ด 10
- go-shortid - Distributed generation of super short, unique, non-sequential, URL friendly IDs. โญ 63 ๐ด 1
- gopsutil - A cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc). โญ 1060 ๐ด 218
- gosms - Your own local SMS gateway in Go that can be used to send SMS โญ 925 ๐ด 73
- gountries - A package that exposes country and subdivision data. โญ 87 ๐ด 4
- health - A Easy to use, extensible health check library. โญ 179 ๐ด 8
- jobs - A persistent and flexible background jobs library. โญ 335 ๐ด 23
- margelet - A framework for building Telegram bots. โญ 32 ๐ด 5
- notify - File system event notification library with simple API, similar to os/signal. โญ 158 ๐ด 20
- secdl - Lighttpd ModSecDownload algorithm ported to go to secure download urls. โญ 1 ๐ด 0
- stats - Monitors Go MemStats + System stats such as Memory, Swap and CPU and sends via UDP anywhere you want for logging etc... โญ 19 ๐ด 4
- werr - Error Wrapper creates an wrapper for the error type in Go which captures the File, Line and Stack of where it was called. โญ 4 ๐ด 0
- xkg - X Keyboard Grabber โญ 12 ๐ด 0
- xstrings - A collection of useful string functions ported from other languages. โญ 322 ๐ด 24
Libraries for working with human languages.
- dpar - Transition-based statistical dependency parser. โญ 17 ๐ด 2
- go-eco - Similarity, dissimilarity and distance matrices; diversity, equitability and inequality measures; species richness estimators; coenocline models. โญ 2 ๐ด 1
- go-i18n - A package and an accompanying tool to work with localized text. โญ 265 ๐ด 46
- go-nlp - Utilities for working with discrete probability distributions and other tools useful for doing NLP work. โญ 48 ๐ด 10
- go-stem - Implementation of the porter stemming algorithm. โญ 38 ๐ด 10
- go2vec - Reader and utility functions for word2vec embeddings. โญ 11 ๐ด 1
- gojieba - This is a Go implementation of jieba which a Chinese word splitting algorithm. โญ 67 ๐ด 24
- golibstemmer - Go bindings for the snowball libstemmer library including porter 2 โญ 10 ๐ด 4
- gounidecode - Unicode transliterator (also known as unidecode) for Go โญ 38 ๐ด 17
- icu - Cgo binding for icu4c C library detection and conversion functions. Guaranteed compatibility with version 50.1. โญ 15 ๐ด 1
- libtextcat - Cgo binding for libtextcat C library. Guaranteed compatibility with version 2.2. โญ 8 ๐ด 6
- MMSEGO - This is a GO implementation of MMSEG which a Chinese word splitting algorithm. โญ 49 ๐ด 10
- paicehusk - Golang implementation of the Paice/Husk Stemming Algorithm โญ 13 ๐ด 3
- porter - This is a fairly straightforward port of Martin Porter's C implementation of the Porter stemming algorithm. โญ 2 ๐ด 0
- porter2 - Really fast Porter 2 stemmer. โญ 22 ๐ด 3
- segment - A Go library for performing Unicode Text Segmentation as described in Unicode Standard Annex #29 โญ 16 ๐ด 2
- sentences - A sentence tokenizer: converts text into a list of sentences. โญ 129 ๐ด 7
- snowball - Snowball stemmer port (cgo wrapper) for Go. Provides word stem extraction functionality Snowball native. โญ 13 ๐ด 0
- stemmer - Stemmer packages for Go programming language. Includes English and German stemmers. โญ 29 ๐ด 1
- textcat - A Go package for n-gram based text categorization, with support for utf-8 and raw text โญ 41 ๐ด 7
Libraries for working with various layers of the network
- arp - Package arp implements the ARP protocol, as described in RFC 826. โญ 36 ๐ด 7
- buffstreams - Streaming protocolbuffer data over TCP made easy โญ 135 ๐ด 6
- canopus - CoAP Client/Server implementation (RFC 7252) โญ 33 ๐ด 4
- dhcp6 - Package dhcp6 implements a DHCPv6 server, as described in RFC 3315. โญ 9 ๐ด 5
- dns - Go library for working with DNS โญ 1538 ๐ด 275
- ether - A cross-platform Go package for sending and receiving ethernet frames. โญ 34 ๐ด 1
- ethernet - Package ethernet implements marshaling and unmarshaling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags. โญ 11 ๐ด 2
- fasthttp - Package fasthttp is a fast HTTP implementation for Go, up to 10 times faster than net/http โญ 2428 ๐ด 179
- ftp - Package ftp implements a FTP client as described in RFC 959. โญ 131 ๐ด 79
- go-getter - A Go library for downloading files or directories from various sources using a URL. โญ 245 ๐ด 15
- go-stun - A go implementation of the STUN client (RFC 3489 and RFC 5389). โญ 80 ๐ด 21
- golibwireshark - Package golibwireshark use libwireshark library to decode pcap file and analyse dissection data. โญ 4 ๐ด 0
- gopacket - A Go library for packet processing with libpcap bindings โญ 625 ๐ด 120
- gopcap - A Go wrapper for libpcap โญ 214 ๐ด 93
- goshark - Package goshark use tshark to decode IP packet and create data struct to analyse packet. โญ 2 ๐ด 0
- gosnmp - Native Go library for performing SNMP actions โญ 111 ๐ด 40
- gotcp - A Go package for quickly writing tcp applications โญ 163 ๐ด 72
- grab - Go package for managing file downloads โญ 29 ๐ด 2
- graval - An experimental FTP server framework. โญ 10 ๐ด 2
- kcp-go - KCP - A Fast and Reliable ARQ Protocol. โญ 85 ๐ด 28
- linkio - Network link speed simulation for Reader/Writer interfaces โญ 18 ๐ด 3
- llb - It's a very simple but quick backend for proxy servers. Can be useful for fast redirection to predefined domain with zero memory allocation and fast response. โญ 1 ๐ด 0
- mdns - Simple mDNS (Multicast DNS) client/server library in Golang โญ 238 ๐ด 55
- mqttPaho - The Paho Go Client provides an MQTT client library for connection to MQTT brokers via TCP, TLS or WebSockets.
- portproxy - Simple TCP proxy which adds CORS support to API's which don't support it. โญ 22 ๐ด 0
- raw - Package raw enables reading and writing data at the device driver level for a network interface. โญ 18 ๐ด 2
- sftp - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. โญ 260 ๐ด 80
- sslb - It's a Super Simples Load Balancer, just a little project to achieve some kind of performance. โญ 63 ๐ด 1
- tcp_server - A Go library for building tcp servers faster. โญ 44 ๐ด 21
- utp - Go uTP micro transport protocol implementation. โญ 49 ๐ด 10
- winrm - A Go WinRM client to remotely execute commands on Windows machines โญ 76 ๐ด 26
Libraries for using OpenGL in Go.
- gl - Go bindings for OpenGL (generated via glow). โญ 202 ๐ด 21
- glfw - Go bindings for GLFW 3. โญ 234 ๐ด 39
- goxjs/gl - Go cross-platform OpenGL bindings (OS X, Linux, Windows, browsers, iOS, Android). โญ 66 ๐ด 4
- goxjs/glfw - Go cross-platform glfw library for creating an OpenGL context and receiving events. โญ 26 ๐ด 3
- mathgl - Pure Go math package specialized for 3D math, with inspiration from GLM. โญ 124 ๐ด 17
Libraries that implement Object-Relational Mapping or datamapping techniques.
- beego orm - A powerful orm framework for go. Support: pq/mysql/sqlite3. โญ 7268 ๐ด 1811
- go-store - A simple and fast Redis backed key-value store library for Go. โญ 73 ๐ด 5
- gomodel - A lightweight, fast, orm-like library helps interactive with database. โญ 46 ๐ด 5
- GORM - The fantastic ORM library for Golang, aims to be developer friendly. โญ 3837 ๐ด 446
- gorp - Go Relational Persistence, ORM-ish library for Go. โญ 2091 ๐ด 262
- QBS - Stands for Query By Struct. A Go ORM. โญ 394 ๐ด 76
- Storm - Simple and powerful ORM for BoltDB. โญ 175 ๐ด 15
- upper.io/db - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers. โญ 339 ๐ด 37
- Xorm - Simple and powerful ORM for Go. โญ 1243 ๐ด 224
- Zoom - A blazing-fast datastore and querying engine built on Redis. โญ 135 ๐ด 6
Libraries for package and dependency management.
- gigo - PIP-like dependency tool for golang, with support for private repositories and hashes. โญ 188 ๐ด 9
- glide - Manage your golang vendor and vendored packages with ease. Inspired by tools like Maven, Bundler, and Pip. โญ 2005 ๐ด 119
- godep - dependency tool for go, godep helps build packages reproducibly by fixing their dependencies. โญ 3541 ๐ด 327
- gom - Go Manager - bundle for go. โญ 1099 ๐ด 83
- goop - A simple dependency manager for Go (golang), inspired by Bundler. โญ 764 ๐ด 45
- gopm - Go Package Manager โญ 1003 ๐ด 97
- gpm - Barebones dependency manager for Go. โญ 961 ๐ด 52
- johnny-deps - Minimal dependency version using Git โญ 217 ๐ด 6
- nut - Vendor Go dependencies โญ 246 ๐ด 12
- VenGO - create and manage exportable isolated go virtual environments โญ 85 ๐ด 2
- graphql - graphql parser + utilities. โญ 36 ๐ด 8
- graphql - GraphQL implementation in go. โญ 28 ๐ด 2
- graphql-go - An implementation of GraphQL for Go. โญ 434 ๐ด 44
- jsonql - JSON query expression library in Golang. โญ 53 ๐ด 3
- esc - Embeds files into Go programs and provides http.FileSystem interfaces to them. โญ 126 ๐ด 21
- fileb0x - Simple tool to embed files in go with focus on "customization" and ease to use. โญ 51 ๐ด 3
- go-bindata - Package that converts any file into managable Go source code. โญ 1859 ๐ด 139
- go-embed - Generates go code to embed resource files into your library or executable โญ 2 ๐ด 0
- go-resources - Unfancy resources embedding with Go. โญ 103 ๐ด 7
- go.rice - go.rice is a Go package that makes working with resources such as html,js,css,images and templates very easy. โญ 729 ๐ด 41
- statics - Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks. โญ 31 ๐ด 2
- vfsgen - Generates a vfsdata.go file that statically implements the given virtual filesystem. โญ 84 ๐ด 7
Libraries for scientific computing and data analyzing.
- blas - Implementation of BLAS (Basic Linear Algebra Subprograms) โญ 91 ๐ด 14
- chart - Simple Chart Plotting library for Go. Supports many graphs types. โญ 321 ๐ด 46
- evaler - A simple floating point arithmetic expression evaluator โญ 24 ๐ด 5
- ewma - Exponentially-weighted moving averages โญ 153 ๐ด 12
- geom - 2D geometry for golang โญ 33 ๐ด 13
- go-dsp - Digital Signal Processing for Go โญ 387 ๐ด 27
- go-fn - Mathematical functions written in Go language, that are not covered by math pkg โญ 2 ๐ด 0
- go-gt - Graph theory algorithms written in "Go" language โญ 1 ๐ด 0
- go.matrix - linear algebra for go (has been stalled) โญ 246 ๐ด 60
- gocomplex - A complex number library for the Go programming language. โญ 1 ๐ด 0
- gofrac - A (goinstallable) fractions library for go with support for basic arithmetic. โญ 6 ๐ด 3
- gohistogram - Approximate histograms for data streams โญ 70 ๐ด 14
- gonum/mat64 - The general purpose package for matrix computation. Package mat64 provides basic linear algebra operations for float64 matrices. โญ 260 ๐ด 37
- gonum/plot - gonum/plot provides an API for building and drawing plots in Go. โญ 262 ๐ด 35
- goraph - A pure Go graph theory library(data structure, algorith visualization) โญ 217 ๐ด 32
- gostat - A statistics library for the go language โญ 9 ๐ด 1
- mudlark-go - A collection of packages providing (hopefully) useful code for use in software using Google's Go programming language. โญ 0 ๐ด 0
- pagerank - Weighted PageRank algorithm implemented in Go โญ 13 ๐ด 4
- stats - A statistics package with common functions missing from the Golang standard library. โญ 608 ๐ด 39
- streamtools - general purpose, graphical tool for dealing with streams of data. โญ 1277 ๐ด 114
- vectormath - Vectormath for Go, an adaptation of the scalar C functions from Sony's Vector Math library, as found in the Bullet-2.79 source code. (currently inactive) โญ 52 ๐ด 8
Libraries that are used to help make your application more secure.
- acmetool โ ACME (Let's Encrypt) client tool with automatic renewal. โญ 836 ๐ด 30
- BadActor - An in-memory, application-driven jailer built in the spirit of fail2ban โญ 172 ๐ด 4
- go-yara - Go Bindings for YARA, the "pattern matching swiss knife for malware researchers (and everyone else)" โญ 29 ๐ด 6
- lego - Pure Go ACME client library and CLI tool (for use with Let's Encrypt) โญ 1247 ๐ด 86
- passlib - Futureproof password hashing library. โญ 96 ๐ด 5
- simple-scrypt - an scrypt package with a simple, obvious API and automatic cost calibration built-in. โญ 64 ๐ด 6
Libraries and tools for binary serialization
- asn1 - Asn.1 BER and DER encoding library for golang โญ 3 ๐ด 1
- colfer - Code generation for the Colfer binary format โญ 14 ๐ด 1
- go-capnproto - Cap'n Proto library and parser for go โญ 239 ๐ด 20
- bambam - generator for Cap'n Proto schemas from go. โญ 53 ๐ด 7
- go-codec - High Performance, feature-Rich, idiomatic encode, decode and rpc library for msgpack, cbor and json, with runtime-based OR code-generation support โญ 595 ๐ด 79
- gogoprotobuf - Protocol Buffers for Go with Gadgets โญ 454 ๐ด 63
- goprotobuf - Go support, in the form of a library and protocol compiler plugin, for Google's protocol buffers. โญ 961 ๐ด 206
- mapstructure - Go library for decoding generic map values into native Go structures. โญ 607 ๐ด 75
- php_session_decoder - GoLang library for working with PHP session format and PHP Serialize/Unserialize functions โญ 52 ๐ด 18
- structomap - Library to easily and dynamically generate maps from static structures. โญ 32 ๐ด 2
- algernon - HTTP/2 web server with built-in support for Lua, Markdown, GCSS and Amber. โญ 242 ๐ด 12
- Caddy - Caddy is an alternative, HTTP/2 web server that's easy to configure and use. โญ 6278 ๐ด 403
- consul - Consul is a tool for service discovery, monitoring and configuration.
- devd - A local webserver for developers โญ 2101 ๐ด 72
- etcd - A highly-available key value store for shared configuration and service discovery. โญ 9836 ๐ด 1645
- minio - Minio is a distributed object storage server. โญ 1324 ๐ด 124
- nsq - A realtime distributed messaging platform
- yakvs - A small, networked, in-memory key-value store. โญ 7 ๐ด 1
Libraries and tools for templating and lexing.
- ace - Ace is an HTML template engine for Go, inspired by Slim and Jade. Ace is a refinement of Gold. โญ 474 ๐ด 26
- amber - Amber is an elegant templating engine for Go Programming Language It is inspired from HAML and Jade. โญ 611 ๐ด 37
- damsel - Markup language featuring html outlining via css-selectors, extensible via pkg html/template and others. โญ 16 ๐ด 1
- ego - A lightweight templating language that lets you write templates in Go. Templates are translated into Go and compiled. โญ 252 ๐ด 21
- fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than text/template. โญ 69 ๐ด 8
- gofpdf - A PDF document generator with high level support for text, drawing and images. โญ 256 ๐ด 48
- kasia.go - Templating system for HTML and other text documents - go implementation. โญ 67 ๐ด 5
- mustache - A Go implementation of the Mustache template language. โญ 787 ๐ด 116
- pongo2 - A Django-like template-engine for Go. โญ 737 ๐ด 69
- quicktemplate - Fast, powerful, yet easy to use template engine. Converts templates into Go code and then compiles it. โญ 429 ๐ด 24
- raymond - A complete handlebars implementation in Go. โญ 96 ๐ด 3
- Razor - Razor view engine for Golang. โญ 521 ๐ด 65
- Soy - Closure templates (aka Soy templates) for Go, following the official spec โญ 114 ๐ด 13
Libraries for testing codebases and generating test data.
-
Testing Frameworks
- assert - Basic Assertion Library used along side native go testing, with building blocks for custom assertions โญ 5 ๐ด 2
- assert - Asserts to Go testing โญ 128 ๐ด 35
- badio - Extensions to Go's
testing/iotest
package โญ 2 ๐ด 1 - bro - Watch files in directory and run tests for them โญ 11 ๐ด 1
- frisby - a REST API testing framework โญ 144 ๐ด 7
- ginkgo - BDD Testing Framework for Go
- go-carpet - Tool for viewing test coverage in terminal โญ 142 ๐ด 2
- go-mutesting - Mutation testing for Go source code โญ 62 ๐ด 3
- go-vcr - Record and replay your HTTP interactions for fast, deterministic and accurate tests โญ 92 ๐ด 5
- goblin - Mocha like testing framework fo Go โญ 285 ๐ด 16
- gocheck - A more advanced testing framework alternative to gotest.
- GoConvey - BDD-style framework with web UI and live reload โญ 2197 ๐ด 175
- godog - Cucumber or Behat like BDD framework for Go. โญ 65 ๐ด 5
- gofight - API Handler Testing for Golang Router framework. โญ 38 ๐ด 1
- gomega - Rspec like matcher/assertion library.
- GoSpec - BDD-style testing framework for the Go programming language. โญ 109 ๐ด 17
- gospecify - This provides a BDD syntax for testing your Go code. It should be familiar to anybody who has used libraries such as rspec. โญ 51 ๐ด 4
- Hamcrest - fluent framework for declarative Matcher objects that, when applied to input values, produce self-describing results. โญ 22 ๐ด 2
- restit - A Go micro framework to help writing RESTful API integration test. โญ 26 ๐ด 0
- testfixtures - A helper for Rails' like test fixtures to test database applications. โญ 51 ๐ด 0
- Testify - A sacred extension to the standard go testing package. โญ 1951 ๐ด 221
-
Mock
- counterfeiter - Tool for generating self-contained mock objects โญ 86 ๐ด 12
- go-sqlmock - Mock SQL driver for testing database interactions โญ 228 ๐ด 39
- go-txdb - Single transaction based database driver mainly for testing purposes. โญ 5 ๐ด 0
- gock - Versatile HTTP mocking made easy. โญ 217 ๐ด 3
- gomock - Mocking framework for the Go programming language. โญ 274 ๐ด 38
- mockhttp - Mock object for Go http.ResponseWriter โญ 19 ๐ด 4
-
Fuzzing and delta-debugging/reducing/shrinking
- go-fuzz - A randomized testing system โญ 1410 ๐ด 78
- gofuzz - A library for populating go objects with random values โญ 235 ๐ด 14
- gogenerate - A Scalacheck-like library for Go โญ %!f() ๐ด %!f()
- Tavor - A generic fuzzing and delta-debugging framework โญ 144 ๐ด 4
Libraries for parsing and manipulating texts.
- Specific Formats
- blackfriday - Markdown processor in Go โญ 1858 ๐ด 259
- github_flavored_markdown - GitHub Flavored Markdown renderer with fenced code block highlighting, clickable header anchor links. โญ 32 ๐ด 4
- bluemonday - HTML Sanitizer โญ 390 ๐ด 25
- enca - Minimal cgo bindings for libenca. โญ 2 ๐ด 1
- genex - Count and expand Regular Expressions into all matching Strings โญ 36 ๐ด 3
- go-humanize - Formatters for time, numbers, and memory size to human readable format. โญ 699 ๐ด 65
- go-nmea - NMEA parser library for the Go language. โญ 15 ๐ด 1
- go-pkg-rss - This package reads RSS and Atom feeds and provides a caching mechanism that adheres to the feed specs. โญ 268 ๐ด 72
- go-pkg-xmlx - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browsing and exposes some simple single/multi-node search functions. โญ 109 ๐ด 28
- go-runewidth - Functions to get fixed width of the character or string. โญ 54 ๐ด 9
- gofeed - Parse RSS and Atom feeds in Go โญ 448 ๐ด 14
- gographviz - Parses the Graphviz DOT language. โญ 42 ๐ด 10
- gommon/bytes - Format bytes to string. โญ 120 ๐ด 17
- gonameparts - Parses human names into individual name parts โญ 19 ๐ด 1
- GoQuery - GoQuery brings a syntax and a set of features similar to jQuery to the Go language. โญ 2727 ๐ด 272
- goregen - A library for generating random strings from regular expressions. โญ 16 ๐ด 3
- guesslanguage - Functions to determine the natural language of a unicode text. โญ 21 ๐ด 4
- mxj - Encode / decode XML as JSON or map[string]interface{}; extract values with dot-notation paths and wildcards. Replaces x2j and j2x packages. โญ 120 ๐ด 22
- slug - URL-friendly slugify with multiple languages support. โญ 77 ๐ด 10
- Slugify - A Go slugify application that handles string. โญ 11 ๐ด 0
- toml - TOML configuration format (encoder/decoder with reflection). โญ 900 ๐ด 140
- blackfriday - Markdown processor in Go โญ 1858 ๐ด 259
- Utility
- gotabulate - Easily pretty-print your tabular data with Go. โญ 120 ๐ด 7
- kace - Common case conversions covering common initialisms. โญ 2 ๐ด 0
- parseargs-go - A string argument parser that understands quotes and backslashes โญ 3 ๐ด 0
- parth - URL path segmentation parsing. โญ 6 ๐ด 0
- xurls - Extract urls from text โญ 189 ๐ด 8
Libraries for accessing third party APIs.
- anaconda - A Go client library for the Twitter 1.1 API โญ 546 ๐ด 145
- aws-sdk-go - The official AWS SDK for the Go programming language. โญ 2539 ๐ด 412
- brewerydb - Go library for accessing the BreweryDB API. โญ 10 ๐ด 0
- clarifai - A Go client library for interfacing with the Clarifai API. โญ 32 ๐ด 5
- discordgo - Go bindings for the Discord Chat API โญ 95 ๐ด 22
- facebook - Go Library that supports the Facebook Graph API โญ 312 ๐ด 78
- gads - Google Adwords Unofficial API โญ 16 ๐ด 13
- gami - Go library for Asterisk Manager Interface. โญ 15 ๐ด 7
- gcm - Go library for Google Cloud Messaging โญ 28 ๐ด 2
- geo-golang - Go Library to access Google Maps, MapQuest, Nominatim, OpenCage, HERE, Bing, Mapbox, and OpenStreetMap geocoding / reverse geocoding APIs. โญ 122 ๐ด 11
- ghost - Go Library for accessing the Snapchat API. โญ 16 ๐ด 1
- github - Go library for accessing the GitHub API. โญ 1721 ๐ด 372
- go-imgur - Go client library for imgur โญ 2 ๐ด 0
- go-jira - Go client library for Atlassian JIRA โญ 23 ๐ด 13
- go-marathon - A Go library for interacting with Mesosphere's Marathon PAAS. โญ 81 ๐ด 49
- go-trending - Go library for accessing trending repositories and developers at Github. โญ 72 ๐ด 2
- go-twitter - Go client library for the Twitter v1.1 APIs. โญ 70 ๐ด 7
- go-xkcd - Go client for the xkcd API. โญ 14 ๐ด 0
- goamz - Popular fork of goamz which adds some missing API calls to certain packages. โญ 626 ๐ด 228
- GoMusicBrainz - a Go MusicBrainz WS2 client library. โญ 18 ๐ด 6
- google - Auto-generated Google APIs for Go. โญ 666 ๐ด 148
- google-analytics - A simple wrapper for easy google analytics reporting. โญ 4 ๐ด 0
- google-cloud - Google Cloud APIs Go Client Library. โญ 315 ๐ด 79
- gostorm - GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells. โญ 79 ๐ด 13
- hipchat - This project implements a golang client library for the Hipchat API. โญ 98 ๐ด 23
- hipchat (xmpp) - A golang package to communicate with HipChat over XMPP. โญ 92 ๐ด 27
- Medium - A Golang SDK for Medium's OAuth2 API. โญ 45 ๐ด 9
- megos - A client library for accessing an Apache Mesos cluster โญ 36 ๐ด 4
- minio-go - Minio Go Library for Amazon S3 compatible cloud storage. โญ 102 ๐ด 36
- mixpanel - Mixpanel is a library for tracking events and sending Mixpanel profile updates to Mixpanel from your go applications. โญ 13 ๐ด 2
- paypal - Wrapper for PayPal payment API โญ 92 ๐ด 18
- playlyfe - The Playlyfe Rest API Go SDK โญ 0 ๐ด 0
- pushover - Go wrapper for the Pushover API. โญ 11 ๐ด 2
- rrdaclient - Go Library to access statdns.com API, which is in turn RRDA API. DNS Queries over HTTP. โญ 3 ๐ด 0
- shopify - Go Library to make CRUD request to the Shopify API. โญ 10 ๐ด 3
- slack - Slack API in Go. โญ 528 ๐ด 104
- smite - Go package to wraps access to the Smite game API. โญ 7 ๐ด 0
- spotify - Go Library to access Spotify WEB API. โญ 7 ๐ด 1
- steam - Go Library to interact with Steam game servers. โญ 8 ๐ด 0
- stripe - Go client for the Stripe API โญ 405 ๐ด 94
- telebot - Telegram bot framework written in Go. โญ 178 ๐ด 35
- telegram-bot-api - Simple and clean Telegram bot client. โญ 224 ๐ด 36
- textbelt - Go client for the textbelt.com txt messaging API. โญ 4 ๐ด 0
- TheMovieDb - A simple golang package to communicate with themoviedb.org โญ 4 ๐ด 1
- translate - Go online translation package. โญ 9 ๐ด 1
- tumblr - Go wrapper for the Tumblr v2 API. โญ 0 ๐ด 1
- webhooks - Webhook reciever for GitHub and Bitbucket. โญ 24 ๐ด 3
General utilities and tools to make your life easier.
- abutil - A collection of often-used Golang helpers. โญ 6 ๐ด 0
- apm - A process manager for Golang applications with an HTTP API. โญ 45 ๐ด 2
- boilr - A blazingly fast CLI tool for creating projects from boilerplate templates. โญ 208 ๐ด 11
- command - Command pattern for Go with thread safe serial and parallel dispatcher โญ 1 ๐ด 0
- coop - Cheat sheet for some of the common concurrent flows in Go. โญ 1154 ๐ด 51
- Death - Managing go application shutdown with signals. โญ 29 ๐ด 3
- Deepcopier - Simple struct copying for Go. โญ 82 ๐ด 6
- delve - Go debugger. โญ 3727 ๐ด 247
- fastlz - Wrap over FastLz (free, open-source, portable real-time compression library) for GoLang. โญ 4 ๐ด 1
- filetype - Small package to infer the file type checking the magic numbers signature. โญ 60 ๐ด 4
- fzf - A command-line fuzzy finder written in Go โญ 5034 ๐ด 211
- generate - runs go generate recursively on a specified path or environment variable and can filter by regex. โญ 1 ๐ด 1
- gentleman - Full-featured plugin-driven HTTP client library. โญ 280 ๐ด 2
- go-cron - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. โญ 116 ๐ด 8
- go-debug - Conditional debug logging for Golang libraries & applications. โญ 313 ๐ด 26
- go-dry - DRY (don't repeat yourself) package for Go. โญ 152 ๐ด 15
- go-rate - A timed rate limiter for Go. โญ 192 ๐ด 8
- go-sitemap-generator - XML Sitemap generator written in Go. โญ 12 ๐ด 3
- go-trigger - Go-lang global event triggerer, Register Events with an id and trigger the event from anywhere from your project. โญ 51 ๐ด 11
- go-underscore - A useful collection of helpfully functional Go collection utilities. โญ 846 ๐ด 41
- goback - Go simple exponential backoff package. โญ 25 ๐ด 1
- godaemon - Utility to write daemons. โญ 262 ๐ด 15
- godotenv - A Go port of Ruby's dotenv library (Loads environment variables from
.env
.) โญ 296 ๐ด 22 - godropbox - Common libraries for writing Go services/applications from Dropbox. โญ 3058 ๐ด 270
- gohper - Various tools/modules help for development. โญ 209 ๐ด 42
- gojq - JSON query in Golang. โญ 39 ๐ด 1
- golarm - Fire alarms with system events. โญ 19 ๐ด 1
- golog - Easy and lightweight CLI tool to time track your tasks. โญ 16 ๐ด 4
- gopencils - Small and simple package to easily consume REST APIs. โญ 346 ๐ด 25
- goplaceholder - a small golang lib to generate placeholder images. โญ 10 ๐ด 5
- goreq - Minimal and simple request library for Go language. โญ 469 ๐ด 70
- goreq - An enhanced simplified HTTP client based on gorequest. โญ 21 ๐ด 6
- gorequest - Simplified HTTP client with rich features for Go. โญ 727 ๐ด 92
- gotenv - Load environment variables from
.env
or anyio.Reader
in Go โญ 49 ๐ด 4 - grequests - An elegant and simple
net/http
wrapper that follows Python's requests library โญ 721 ๐ด 32 - htcat - Parallel and Pipelined HTTP GET Utility โญ 420 ๐ด 23
- httpcontrol - Package httpcontrol allows for HTTP transport level control around timeouts and retries. โญ 405 ๐ด 26
- hystrix-go - Implements Hystrix patterns of programmer-defined fallbacks aka circuit breaker. โญ 408 ๐ด 39
- JobRunner - Smart and featureful cron job scheduler with job queuing and live monitoring built in. โญ 275 ๐ด 9
- jsonf - Console tool for highlighted formatting and struct query fetching JSON. โญ 26 ๐ด 4
- jsongo - Fluent API to make it easier to create Json objects. โญ 51 ๐ด 1
- lrserver - LiveReload server for Go โญ 67 ๐ด 4
- mc - Minio Client provides minimal tools to work with Amazon S3 compatible cloud storage and filesystems. โญ 243 ๐ด 31
- mergo - A helper to merge structs and maps in Golang. Useful for configuration default values, avoiding messy if-statements. โญ 142 ๐ด 41
- moldova - A utility for generating random data based on an input template. โญ 117 ๐ด 3
- mp - A simple cli email parser. It currently takes stdin and outputs JSON. โญ 11 ๐ด 0
- multitick - Multiplexor for aligned tickers. โญ 44 ๐ด 0
- netbug - Easy remote profiling of your services. โญ 36 ๐ด 2
- ngrok - Introspected tunnels to localhost. โญ 7242 ๐ด 895
- okrun - go run error steamroller. โญ 11 ๐ด 2
- panicparse - Groups similar goroutines and colorizes stack dump. โญ 1266 ๐ด 24
- peco - Simplistic interactive filtering tool. โญ 3006 ๐ด 98
- pester - Go HTTP client calls with retries, backoff, and concurrency. โญ 76 ๐ด 12
- pm - Process (i.e. goroutine) manager with an HTTP API. โญ 38 ๐ด 5
- profile - Simple profiling support package for Go. โญ 426 ๐ด 23
- request - Go HTTP Requests for Humansโข. โญ 129 ๐ด 12
- rerun - Recompiling and rerunning go apps when source changes. โญ 104 ๐ด 4
- resty - Simple HTTP and REST client for Go inspired by Ruby rest-client. โญ 296 ๐ด 14
- robustly - Runs functions resiliently, catching and restarting panics. โญ 105 ๐ด 5
- scheduler - Cronjobs scheduling made easy. โญ 95 ๐ด 7
- sling - Go HTTP requests builder for API clients. โญ 321 ๐ด 19
- spinner - Go package to easily provide a terminal spinner with options. โญ 233 ๐ด 12
- sqlx - provides a set of extensions on top of the excellent built-in database/sql package. โญ 1808 ๐ด 156
- ugo - ugo is slice toolbox with concise syntax for Go. โญ 8 ๐ด 1
- xferspdy - Xferspdy provides binary diff and patch library in golang โญ 6 ๐ด 0
- xlsx - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs. โญ 1003 ๐ด 248
Libraries for validation.
- govalidator - Validators and sanitizers for strings, numerics, slices and structs. โญ 1096 ๐ด 107
- validator - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving. โญ 506 ๐ด 37
Libraries for version control.
- gh - Scriptable server and net/http middleware for GitHub Webhooks. โญ 38 ๐ด 4
- git2go - Go bindings for libgit2. โญ 808 ๐ด 131
- go-vcs - manipulate and inspect VCS repositories in Go. โญ 42 ๐ด 11
- hgo - Hgo is a collection of Go packages providing read-access to local Mercurial repositories. โญ 8 ๐ด 2
Libraries for manipulating video.
- aac/h264 - Golang aac/h264 encoder and decoder. โญ 173 ๐ด 40
- gmf - Go bindings for FFmpeg av* libraries. โญ 195 ๐ด 42
- goav - Comphrensive Go bindings for FFmpeg. โญ 148 ๐ด 37
- gst - Go bindings for GStreamer. โญ 110 ๐ด 24
Full stack web frameworks.
- Beego - beego is an open-source, high-performance web framework for the Go programming language. โญ 7268 ๐ด 1811
- Bone - Lightning Fast HTTP Multiplexer. โญ 906 ๐ด 58
- chi - Small, fast and expressive HTTP router built on net/context. โญ 328 ๐ด 24
- Echo - A fast and unfancy micro web framework for Go. โญ 4503 ๐ด 337
- Gin - Gin is a web framework written in Go! It features a martini-like API with much better performance, up to 40 times faster. If you need performance and good productivity. โญ 6757 ๐ด 735
- Gizmo - Microservice toolkit used by the New York Times. โญ 1416 ๐ด 74
- Glue - Robust Go and Javascript Socket Library (Alternative to Socket.io). โญ 164 ๐ด 9
- go-json-rest - A quick and easy way to setup a RESTful JSON API. โญ 2359 ๐ด 247
- go-kit - A Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc. โญ 4484 ๐ด 337
- go-relax - A framework of pluggable components to build RESTful API's. โญ 122 ๐ด 4
- go-rest - A small and evil REST framework for Go. โญ 90 ๐ด 9
- go-socket.io - socket.io library for golang, a realtime application framework. โญ 1193 ๐ด 170
- goa - Framework for developing microservices based on the design of Ruby's Praxis. โญ 791 ๐ด 75
- Goat - A minimalistic REST API server in Go. โญ 91 ๐ด 9
- gocraft/web - A mux and middleware package in Go. โญ 1065 ๐ด 79
- Goji - Goji is a minimalistic and flexible HTTP request multiplexer with support for
net/context
. โญ 195 ๐ด 12 - Golf - Golf is a fast, simple and lightweight micro-web framework for Go. It comes with powerful features and has no dependencies other than the Go Standard Library. โญ 170 ๐ด 10
- golongpoll - HTTP longpoll server library that makes web pub-sub simple. โญ 282 ๐ด 12
- Gondola - The web framework for writing faster sites, faster โญ 297 ๐ด 20
- goose - Server Sent Events in Go โญ 20 ๐ด 4
- Gorilla - Gorilla is a web toolkit for the Go programming language.
- httprouter - A high performance router. Use this and the standard http handlers to form a very high performance web framework. โญ 3210 ๐ด 287
- httptreemux - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter. โญ 153 ๐ด 17
- Iris - A very minimal but flexible and high-performance golang web application framework, providing a robust set of features for building web applications.
- lars - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks. โญ 286 ๐ด 12
- Macaron - Macaron is a high productive and modular design web framework in Go. โญ 1120 ๐ด 116
- mango - Mango is a modular web-application framework for Go, inspired by Rack, and PEP333. โญ 297 ๐ด 31
- medeina - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba. โญ 15 ๐ด 1
- mux - A powerful URL router and dispatcher for golang. โญ 2444 ๐ด 385
- neo - Neo is minimal and fast Go Web Framework with extremely simple API. โญ 259 ๐ด 19
- ozzo-routing - A high-performance HTTP router and Web framework supporting routes with regular expressions. Comes with full support for quickly building a RESTful API application. โญ 77 ๐ด 9
- pat - Sinatra style pattern muxer for Goโs net/http library, by the author of Sinatra. โญ 953 ๐ด 96
- Resoursea - A REST framework for quickly writing resource based services. โญ 24 ๐ด 2
- REST Layer - A framework to build REST/GraphQL API on top of databases with mostly configuration over code.
- Revel - A high-productivity web framework for the Go language. โญ 6870 ๐ด 972
- rex - Rex is a library for modular development built upon gorilla/mux, fully compatible with
net/http
. โญ 10 ๐ด 1 - sawsij - lightweight, open-source web framework for building high-performance, data-driven web applications.
- Siesta - Composable framework to write middleware and handlers โญ 338 ๐ด 12
- tango - Micro & pluggable web framework for Go. โญ 417 ๐ด 59
- tigertonic - A Go framework for building JSON web services inspired by Dropwizard โญ 936 ๐ด 74
- traffic - Sinatra inspired regexp/pattern mux and web framework for Go. โญ 477 ๐ด 19
- VarHandler - Generate boilerplate http input and ouput handling. โญ 2 ๐ด 0
- vestigo - A performant, stand-alone, HTTP compliant URL Router for go web applications. โญ 39 ๐ด 6
- Volatile - Minimalist middleware stack promoting flexibility, good practices and clean code. โญ 79 ๐ด 1
- xmux - A high performance muxer based on
httprouter
withnet/context
support. โญ 54 ๐ด 8 - Zerver - Zerver is an expressive, modular, feature completed RESTful framework. โญ 131 ๐ด 19
- zeus - A very simple and fast HTTP router for Go. โญ 94 ๐ด 9
- CORS - Easily add CORS capabilities to your API. โญ 330 ๐ด 34
- formjson - Transparently handle JSON input as a standard form POST. โญ 19 ๐ด 0
- Limiter - Dead simple rate limit middleware for Go. โญ 217 ๐ด 15
- Tollbooth - Rate limit HTTP request handler. โญ 386 ๐ด 29
- XFF - Handle
X-Forwarded-For
header and friends. โญ 48 ๐ด 7
- alice - Painless middleware chaining for Go. โญ 909 ๐ด 52
- catena - http.Handler wrapper catenation (same API as "chain"). โญ 6 ๐ด 0
- chain - Handler wrapper chaining with scoped data (net/context-based "middleware"). โญ 48 ๐ด 0
- go-wrap - Small middlewares package for net/http. โญ 50 ๐ด 2
- gores - Go package that handles HTML, JSON, XML and etc. responses. Useful for RESTful APIs. โญ 39 ๐ด 0
- httpware - Stackable middleware (using net/context) with easy chaining. โญ 15 ๐ด 0
- interpose - Minimalist net/http middleware for golang. โญ 249 ๐ด 13
- muxchain - Lightweight middleware for net/http. โญ 198 ๐ด 6
- negroni - Idiomatic HTTP middleware for Golang. โญ 3684 ๐ด 273
- render - Go package for easily rendering JSON, XML, and HTML template responses. โญ 681 ๐ด 57
- stats - A Go middleware that stores various information about your web application. โญ 345 ๐ด 23
Go software and plugins.
- dupl - A tool for code clone detection. โญ 53 ๐ด 2
- errcheck - Errcheck is a program for checking for unchecked errors in Go programs. โญ 574 ๐ด 33
- gcvis - Visualise Go program GC trace data in real time. โญ 532 ๐ด 36
- Go Metalinter - Metalinter is a tool to automatically apply all static analysis tool and report their output in normalized form. โญ 972 ๐ด 58
- go-checkstyle checkstyle is a style check tool like java checkstyle. This tool inspired by java checkstyle, golint. The style refered to some points in Go Code Review Comments. โญ 29 ๐ด 9
- go-outdated - Console application that displays outdated packages. โญ 23 ๐ด 0
- goast-viewer - Web based Golang AST visualizer. โญ 137 ๐ด 12
- GoCover.io - GoCover.io offers the code coverage of any golang package as a service.
- goimports - Tool to fix (add, remove) your Go imports automatically.
- GoLint - Golint is a linter for Go source code. โญ 1373 ๐ด 147
- Golint online - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package.
- goreturns - Adds zero-value return statements to match the func return types.
- gostatus - A command line tool, shows the status of repositories that contain Go packages. โญ 160 ๐ด 7
- interfacer - A linter that suggests interface types. โญ 475 ๐ด 7
- validate - Automatically validates struct fields with tags. โญ 58 ๐ด 10
- go-lang-idea-plugin Go plugin for IntelliJ IDEA. โญ 3418 ๐ด 401
- go-plus - Go (Golang) Package For Atom That Adds Autocomplete, Formatting, Syntax Checking, Linting and Vetting โญ 884 ๐ด 77
- Goclipse - An Eclipse plugin for Go. โญ 543 ๐ด 161
- gocode - An autocompletion daemon for the Go programming language. โญ 3127 ๐ด 362
- GoSublime - A Golang plugin collection for the text editor SublimeText 2 providing code completion and other IDE-like features. โญ 2277 ๐ด 208
- velour - An IRC client for the acme editor. โญ 13 ๐ด 2
- vim-compiler-go - A Vim plugin to highlight syntax errors on save. โญ 66 ๐ด 16
- vim-go - Go development plugin for Vim. โญ 4857 ๐ด 444
- Watch - Runs a command in an acme win on file changes. โญ 111 ๐ด 14
- colorgo - A wrapper around
go
command for colorizedgo build
output. โญ 64 ๐ด 7 - gb - An easy to use project based build tool for the Go programming language.
- go-pkg-complete - Bash completion for go and wgo. โญ 29 ๐ด 4
- rts - RTS: response to struct. Generates Go structs from server responses. โญ 101 ๐ด 4
Software written in Go.
- aptly - aptly is a Debian repository management tool. โญ 1067 ๐ด 126
- awsenv - a small binary that loads Amazon (AWS) environment variables for a profile. โญ 8 ๐ด 3
- Banshee - Anomalies detection system for periodic metrics. โญ 251 ๐ด 28
- Boom - Boom is a tiny program that sends some load to a web application. โญ 4350 ๐ด 320
- bosun - Time Series Alerting Framework. โญ 1823 ๐ด 257
- dogo - Monitoring changes in the source file and automatically compile and run (restart). โญ 107 ๐ด 13
- Dropship - A tool for deploying code via cdn. โญ 22 ๐ด 2
- EasySSH - Golang package for easy remote execution through SSH and SCP downloading. โญ 104 ๐ด 39
- Go Metrics - Go port of Coda Hale's Metrics library: https://github.com/codahale/metrics. โญ 1235 ๐ด 221
- go-selfupdate - Enable your Go applications to self update. โญ 371 ๐ด 32
- gobrew - gobrew lets you easily switch between multiple versions of go. โญ 153 ๐ด 16
- godbg - Web-based gdb front-end application. โญ 188 ๐ด 18
- Gogs - A Self Hosted Git Service in the Go Programming Language.
- gonative - Tool which creates a build of Go that can cross compile to all platforms while still using the Cgo-enabled versions of the stdlib packages. โญ 234 ๐ด 23
- gox - A dead simple, no frills Go cross compile tool. โญ 1607 ๐ด 99
- goxc - build tool for Go, with a focus on cross-compiling and packaging. โญ 1297 ๐ด 63
- GVM - GVM provides an interface to manage Go versions. โญ 2062 ๐ด 143
- kala - Simplistic, modern, and performant job scheduler. โญ 816 ๐ด 34
- kubernetes - Container Cluster Manager from Google. โญ 14782 ๐ด 4542
- Mora - REST server for accessing MongoDB documents and meta data. โญ 151 ๐ด 27
- ostent - collects and displays system metrics and optionally relays to Graphite and/or InfluxDB. โญ 67 ๐ด 4
- Packer - Packer is a tool for creating identical machine images for multiple platforms from a single source configuration. โญ 5381 ๐ด 1255
- Rodent - Rodent helps you manage Go versions, projects and track dependencies. โญ 30 ๐ด 2
- s3gof3r - A small utility/library optimized for high speed transfer of large objects into and out of Amazon S3. โญ 681 ๐ด 82
- Scaleway-cli - Manage BareMetal Servers from Command Line (as easily as with Docker). โญ 135 ๐ด 18
- [:octocat: Vegeta] (https://github.com/tsenart/vegeta) - HTTP load testing tool and library. It's over 9000! โญ 3959 ๐ด 207
- webhook - Tool which allows user to create HTTP endpoints (hooks) that execute commands on the server. โญ 403 ๐ด 54
- Wide - A Web-based IDE for Teams using Golang.
- winrm-cli - A cli tool to remotely execute commands on Windows machines โญ 2 ๐ด 1
- boxed - Dropbox based blog engine โญ 48 ๐ด 5
- Cherry - A tiny webchat server in Go. โญ 92 ๐ด 9
- Circuit - Circuit is a programmable platform-as-a-service (PaaS) and/or Infrastructure-as-a-Service (IaaS), for management, discovery, synchronization and orchestration of services and hosts comprising cloud applications. โญ 1302 ๐ด 106
- Comcast - Simulate bad network connections. โญ 4321 ๐ด 156
- confd - Manage local application configuration files using templates and data from etcd or consul. โญ 2728 ๐ด 371
- Docker - An open platform for distributed applications for developers and sysadmins.
- fleet - A Distributed init System. โญ 2209 ๐ด 278
- Go Package Store - An app that displays updates for the Go packages in your GOPATH. โญ 655 ๐ด 15
- gocc - Gocc is a compiler kit for Go written in Go. โญ 42 ๐ด 5
- GoDocTooltip - A chrome extension for Go Doc sites, which shows function description as tooltip at funciton list. โญ 8 ๐ด 0
- Gor - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. โญ 5654 ๐ด 462
- heka - universal tool for data processing from Mozilla. Large collection of built-in plugins. Extendable via Go and Lua plugin API. โญ 3117 ๐ด 478
- hsync - A filesystem hierarchy synchronizer.
- hugo - A Fast and Modern Static Website Engine.
- ipe - An open source Pusher server implementation compatible with Pusher client libraries written in GO. โญ 150 ๐ด 10
- Juju - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more.
- limetext Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text.
- LiteIDE LiteIDE is a simple, open source, cross-platform Go IDE. โญ 2887 ๐ด 422
- mockingjay Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests. โญ 243 ๐ด 23
- naclpipe - A simple NaCL EC25519 based crypto pipe tool written in Go. โญ 5 ๐ด 0
- nes - A Nintendo Entertainment System (NES) emulator written in Go. โญ 2284 ๐ด 180
- orange-cat - A Markdown previewer written in Go. โญ 140 ๐ด 4
- peg - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. โญ 295 ๐ด 44
- Postman - Command-line utility for batch-sending email. โญ 638 ๐ด 36
- restic - De-duplicating backup program. โญ 666 ๐ด 59
- rkt - An App Container runtime that integrates with init systems, is compatible with other container formats like Docker, and supports alternative execution engines like KVM. โญ 5563 ๐ด 519
- Seaweed File System - Fast, Simple and Scalable Distributed File System with O(1) disk seek. โญ 2516 ๐ด 350
- shell2http - Executing shell commands via http server (for prototyping or remote control). โญ 45 ๐ด 3
- snap - A powerful telemetry framework. โญ 746 ๐ด 91
- Stack Up - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers. โญ 930 ๐ด 27
- syncthing - An open, decentralized file synchronization tool and protocol.
- Tenyks - Service oriented IRC bot using Redis and JSON for messaging. โญ 153 ๐ด 15
- toto - A simple proxy server written in Go language, can be used together with browser. โญ 7 ๐ด 1
- toxiproxy - Proxy to simulate network and system conditions for automated tests. โญ 1264 ๐ด 59
- tsuru - An extensible and open source Platform as a Service software.
- websysd - Web based process manager (like Marathon or Upstart). โญ 23 ๐ด 4
- wellington - Sass project management tool, extends the language with sprite functions (like Compass). โญ 188 ๐ด 10
Where to discover new Go libraries.
- autobench - Framework to compare the performance between different Go versions. โญ 83 ๐ด 25
- go-benchmarks - A few miscellaneous Go microbenchmarks. Compare some language features to alternative aproaches. โญ 33 ๐ด 4
- go-http-routing-benchmark - Go HTTP request router benchmark and comparison. โญ 710 ๐ด 97
- go-type-assertion-benchmark - Naive performance test of two ways to do type assertion in Go. โญ 3 ๐ด 0
- go_serialization_benchmarks - Benchmarks of Go serialization methods. โญ 338 ๐ด 47
- gocostmodel - Benchmarks of common basic operations for the Go language. โญ 47 ๐ด 2
- golang-micro-benchmarks - Tiny collection of Go micro benchmarks. The intent is to compare some language features to others. โญ 5 ๐ด 0
- golang-sql-benchmark - A collection of benchmarks for popular Go database/SQL utilities. โญ 21 ๐ด 1
- gospeed - Go micro-benchmarks for calculating the speed of language constructs. โญ 53 ๐ด 2
- kvbench - Key/Value database benchmark. โญ 11 ๐ด 0
- skynet - Skynet 1M threads microbenchmark. โญ 617 ๐ด 93
- speedtest-resize - Compare various Image resize algorithms for the Go language. โญ 71 ๐ด 6
- dotGo - Paris, France
- GoCon - Tokyo, Japan
- GolangUK - London, UK
- GopherChina - Shanghai, China
- GopherCon - Denver, USA
- GopherCon Dubai - Dubai, UAE
- GopherCon India - Bengaluru, India
- GothamGo - New York City, USA
- A Go Developer's Notebook
- An Introduction to Programming in Go
- Build Web Application with Golang
- Building Web Apps With Go
- Go Bootcamp
- GoBooks - A curated list of Go books โญ 2193 ๐ด 238
- Learning Go
- Network Programming With Go
- The Go Programming Language
- Awesome Remote Job - A curated list of awesome remote jobs. A lot of them is looking for Go hackers. โญ 5577 ๐ด 521
- awesome-awesomeness - List of other amazingly awesome lists. โญ 16383 ๐ด 1986
- Flipboard - Go Magazine - A collection of Go articles and tutorials.
- Go Blog - The official Go blog.
- Go Forum - Forum to discuss Go.
- Go Projects - List of projects on the Go community wiki. โญ 17443 ๐ด 2197
- godoc.org - Documentation for open source Go packages.
- golang-graphics - A collection of Go images, graphics, and art. โญ 78 ๐ด 3
- golang-nuts - Go mailing list.
- Google Plus Community - The Google+ community for #golang enthusiasts.
- gowalker.org - Go Project API documentation.
- r/Golang - News about Go.
- Trending Go repositories on GitHub today - Good place to find new Go libraries.
- A Tour of Go - Interactive tour of Go.
- Go By Example - A hands-on introduction to Go using annotated example programs.
- Go database/sql tutorial - Introduction to database/sql.
- Working with Go - An intro to go for experienced programmers. โญ 515 ๐ด 44