From 781675954161c38b0c6325624b1b7b2eed5a0edc Mon Sep 17 00:00:00 2001 From: sadlil Date: Tue, 8 Sep 2015 23:20:20 +0600 Subject: [PATCH 001/108] Add Go logger lib with console, file or ES logging. --- README.md | 1 + README.md~ | 1046 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1047 insertions(+) create mode 100644 README.md~ diff --git a/README.md b/README.md index 006042bf..559f206f 100644 --- a/README.md +++ b/README.md @@ -404,6 +404,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for generating and working with log files.* * [glog](https://github.com/golang/glog) - Leveled execution logs for Go. +* [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Cosole, Simple Console, File or Elasticsearch. * [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers. * [go-log](https://github.com/ian-kent/go-log) - A log4j implementation in Go. * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. diff --git a/README.md~ b/README.md~ new file mode 100644 index 00000000..559f206f --- /dev/null +++ b/README.md~ @@ -0,0 +1,1046 @@ +# Awesome Go [![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) + + +A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). + + +### Contributing + +Please take a quick gander at the [contribution guidelines](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md) first. Thanks to all [contributors](https://github.com/avelino/awesome-go/graphs/contributors); you rock! + +[Join us on Slack](https://gophers.slack.com/messages/awesome/) to chat with other awesome-go maintainers! + +#### *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!* + + +### Contents + +- [Awesome Go](#awesome-go) + - [Audio & Music](#audiomusic) + - [Authentication & OAuth](#authentication--oauth) + - [Command Line](#command-line) + - [Configuration](#configuration) + - [Continuous Integration](#continuous-integration) + - [CSS Preprocessors](#css-preprocessors) + - [Data Structures](#data-structures) + - [Database](#database) + - [Database Drivers](#database-drivers) + - [Date & Time](#date--time) + - [Distributed Systems](#distributed-systems) + - [Email](#email) + - [Embeddable Scripting Languages](#embeddable-scripting-languages) + - [Financial](#financial) + - [Forms](#forms) + - [Game Development](#game-development) + - [Generation & Generics](#generation--generics) + - [GUI](#gui) + - [Hardware](#hardware) + - [Images](#images) + - [Logging](#logging) + - [Machine Learning](#machine-learning) + - [Messaging](#messaging) + - [Miscellaneous](#miscellaneous) + - [Natural Language Processing](#natural-language-processing) + - [Networking](#networking) + - [OpenGL](#opengl) + - [ORM](#orm) + - [Package Management](#package-management) + - [Resource Embedding](#resource-embedding) + - [Science and Data Analysis](#science-and-data-analysis) + - [Security](#security) + - [Serialization](#serialization) + - [Template Engines](#template-engines) + - [Testing](#testing) + - [Text Processing](#text-processing) + - [Third-party APIs](#third-party-apis) + - [Utilities](#utilities) + - [Validation](#validation) + - [Version Control](#version-control) + - [Video](#video) + - [Web Frameworks](#web-frameworks) + - [Middlewares](#middlewares) + - [Actual middlewares](#actual-middlewares) + - [Libraries for creating HTTP middlewares](#libraries-for-creating-http-middlewares) + - [Windows](#windows) + +- [Tools](#tools) + - [Code Analysis](#code-analysis) + - [Editor Plugins](#editor-plugins) + - [Go Tools](#go-tools) + - [Software Packages](#software-packages) + - [DevOps Tools](#devops-tools) + - [Other Software](#other-software) + +- [Server Applications](#server-applications) + +- [Resources](#resources) + - [Benchmarks](#benchmarks) + - [Conferences](#conferences) + - [E-Books](#e-books) + - [Twitter](#twitter) + - [Websites](#websites) + - [Tutorials](#tutorials) + + +## Audio/Music + +*Libraries for manipulating audio.* + +* [flac](https://github.com/eaburns/flac) - A native Go FLAC decoder. +* [go-sox](https://github.com/krig/go-sox) - libsox bindings for go. +* [PortAudio](https://code.google.com/p/portaudio-go/) - Go bindings for the PortAudio audio I/O library. +* [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. +* [taglib](https://github.com/wtolson/go-taglib) - Go bindings for taglib. +* [vorbis](https://github.com/mccoyst/vorbis) - A "native" Go Vorbis decoder (uses CGO, but has no dependencies). +* [waveform](https://github.com/mdlayher/waveform) - Go package capable of generating waveform images from audio streams. + + +## Authentication & OAuth + +*Libraries for implementing authentications schemes.* + +* [Go-AWS-Auth](https://github.com/smartystreets/go-aws-auth) - AWS (Amazon Web Services) request signing library. +* [go-jose](https://github.com/square/go-jose) - A fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. +* [go.auth](https://github.com/bradrydzewski/go.auth) - Authentication API for Go web applications. +* [gorbac](https://github.com/mikespook/gorbac) - provides a lightweight role-based access control (RBAC) implementation in Golang. +* [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple provides out of the box. +* [httpauth](https://github.com/goji/httpauth) - HTTP Authentication middleware. +* [jwt-go](https://github.com/dgrijalva/jwt-go) - Golang implementation of JSON Web Tokens (JWT). +* [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. +* [osin](https://github.com/RangelReale/osin) - Golang OAuth2 server library. +* [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. +* [yubigo](https://github.com/GeertJohan/yubigo) - a Yubikey client package that provides a simple API to integrate the Yubico Yubikey into a go application. + + +## Command Line + + +### Standard CLI + +*Libraries for building standard or basic Command Line applications* + +* [cli-init](https://github.com/tcnksm/cli-init) - The easy way to start building Golang command line application. +* [cobra](https://github.com/spf13/cobra) - A Commander for modern Go CLI interactions +* [codegangsta/cli](https://github.com/codegangsta/cli) - A small package for building command line apps in Go. +* [kingpin](https://github.com/alecthomas/kingpin) - A command line and flag parser supporting sub commands. +* [liner](https://github.com/peterh/liner) - A Go readline-like library for command-line interfaces. +* [mitchellh/cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces. +* [ukautz/clif](https://github.com/ukautz/clif) - A small command line interface framework. + + +### Advanced Console UIs + +*Libraries for building Console Applications and Console User Interfaces* + +* [chalk](https://github.com/ttacon/chalk) - Intuitive package for prettifying terminal/console output. +* [color](https://github.com/fatih/color) - Versatile package for colored terminal output. +* [go-colortext](https://github.com/daviddengcn/go-colortext) - Go library for color output in terminals. +* [gocui](https://github.com/jroimartin/gocui) - Minimalist Go library aimed at creating Console User Interfaces. +* [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. +* [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. +* [termtables](https://github.com/apcera/termtables) - A Go port of the Ruby library [terminal-tables](https://github.com/visionmedia/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output +* [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). + + +## Configuration + +*Libraries for configuration parsing* + +* [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. +* [env](https://github.com/caarlos0/env) - Parse environment variables to Go structs (with defaults). +* [envcfg](https://github.com/tomazk/envcfg) - Un-marshaling environment variables to Go structs. +* [envconf](https://github.com/ian-kent/envconf) - Configuration from environment +* [envconfig](https://github.com/vrischmann/envconfig) - Read your configuration from environment variables. +* [gofigure](https://github.com/ian-kent/gofigure) - Go application configuration made easy +* [ini](https://github.com/go-ini/ini) - Go package for read and write INI files +* [mini](https://github.com/FogCreek/mini) - A golang package for parsing ini-style configuration files +* [viper](https://github.com/spf13/viper) - Go configuration with fangs + +## Continuous Integration + +*Tools for help with continuous integration* + +* [goveralls](https://github.com/mattn/goveralls) - Go integration for Coveralls.io continuous code coverage tracking system. +* [overalls](https://github.com/bluesuncorp/overalls) - Multi-Package go project coverprofile for tools like goveralls + +## CSS Preprocessors + +*Libraries for preprocessing CSS files* + +* [c6](https://github.com/c9s/c6) - High performance SASS compatible-implementation compiler written in Go +* [gcss](https://github.com/yosssi/gcss) - Pure Go CSS Preprocessor. + +## Data Structures + +*Generic datastructures and algorithms in Go.* + +* [bitset](https://github.com/willf/bitset) - Go package implementing bitsets. +* [bloom](https://github.com/surge/bloom) - Bloom filters implemented in Go. +* [boomfilters](https://github.com/tylertreat/BoomFilters) - probabilistic data structures for processing continuous, unbounded streams +* [cuckoofilter](https://github.com/seiflotfy/cuckoofilter) - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go. +* [encoding](https://github.com/surge/encoding) - Integer Compression Libraries for Go. +* [go-datastructures](https://github.com/Workiva/go-datastructures) - a collection of useful, performant, and thread-safe data structures +* [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. +* [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go. +* [mafsa](https://github.com/smartystreets/mafsa) - MA-FSA implementation with Minimal Perfect Hashing +* [skiplist](https://github.com/gansidui/skiplist) - Skiplist implementation in Go +* [trie](https://github.com/derekparker/trie) - Trie implementation in Go +* [ttlcache](https://github.com/diegobernardes/ttlcache) - An in-memory LRU string-interface{} map with expiration for golang +* [willf/bloom](https://github.com/willf/bloom) - Go package implementing Bloom filters. + +## Database + +*Databases implemented in Go.* + +* [bolt](https://github.com/boltdb/bolt) - A low-level key/value database for Go. +* [cache2go](https://github.com/muesli/cache2go) - An in-memory key:value cache which supports automatic invalidation based on timeouts. +* [couchcache](https://github.com/codingsince1985/couchcache) - A RESTful caching micro-service backed by Couchbase server. +* [diskv](https://github.com/peterbourgon/diskv) - A home-grown disk-backed key-value store. +* [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. +* [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. +* [go-cache](https://github.com/pmylund/go-cache) - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications. +* [goleveldb](https://github.com/syndtr/goleveldb) - An implementation of the [LevelDB](https://github.com/google/leveldb) key/value database in the Go. +* [groupcache](https://github.com/golang/groupcache) - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. +* [influxdb](https://github.com/influxdb/influxdb) - Scalable datastore for metrics, events, and real-time analytics +* [ledisdb](https://github.com/siddontang/ledisdb) - Ledisdb is a high performance NoSQL like Redis based on LevelDB. +* [levigo](https://github.com/jmhodges/levigo) - Levigo is a Go wrapper for LevelDB. +* [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. +* [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. + +*Database tools.* + +* [go-mysql](https://github.com/siddontang/go-mysql) - A go toolset to handle MySQL protocol and replication. +* [go-mysql-elasticsearch](https://github.com/siddontang/go-mysql-elasticsearch) - Sync your MySQL data into Elasticsearch automatically. +* [goose](https://bitbucket.org/liamstask/goose) - Database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts. +* [kingshard](https://github.com/flike/kingshard) - kingshard is a high performance proxy for MySQL powered by Golang. +* [myreplication](https://github.com/2tvenom/myreplication) - MySql binary log replication listener. Support statement and row based replication. +* [orchestrator](https://github.com/outbrain/orchestrator) - MySQL replication topology manager & visualizer +* [pgweb](https://github.com/sosedoff/pgweb) - A web-based PostgreSQL database browser +* [pravasan](https://github.com/pravasan/pravasan) - Simple Migration tool - currently for MySQL but planning to support soon for Postgres, SQLite, MongoDB, etc., +* [sql-migrate](https://github.com/rubenv/sql-migrate) - Database migration tool. Allows embedding migrations into the application using go-bindata. +* [vitess](https://github.com/youtube/vitess) - vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services. + +*SQL query builder, libraries for building and using SQL.* + +* [Dotsql](https://github.com/gchaincl/dotsql) - Go library that helps you keep sql files in one place and use it with ease. +* [goqu](https://github.com/doug-martin/goqu) - An idiomatic SQL builder and query library. +* [scaneo](https://github.com/variadico/scaneo) - Generate Go code to convert database rows into arbitrary structs. +* [Squirrel](https://github.com/lann/squirrel) - Go library that helps you build SQL queries. + + +## Database Drivers + +*Libraries for connecting and operating databases.* + +* Relational Databases + * [firebirdsql](https://github.com/nakagami/firebirdsql) - Firebird RDBMS SQL driver for Go + * [go-adodb](https://github.com/mattn/go-adodb) - Microsoft ActiveX Object DataBase driver for go that using database/sql. + * [go-bqstreamer](https://github.com/rounds/go-bqstreamer) - BigQuery fast and concurrent stream insert. + * [go-mssqldb](https://github.com/denisenkom/go-mssqldb) - Microsoft MSSQL driver prototype in go language. + * [go-oci8](https://github.com/mattn/go-oci8) - Oracle driver for go that using database/sql. + * [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go. + * [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that using database/sql. + * [gofreetds](https://github.com/minus5/gofreetds) Microsoft MSSQL driver. Go wrapper over [FreeTDS](http://www.freetds.org). + * [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. + +* NoSQL Databases + * [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. + * [cayley](https://github.com/google/cayley) - A graph database with support for multiple backends. + * [go-couchbase](https://github.com/couchbase/go-couchbase) - Couchbase client in Go + * [go-couchdb](https://github.com/fjl/go-couchdb) - Yet another CouchDB HTTP API wrapper for Go + * [gocb](https://github.com/couchbaselabs/gocb) - Official Couchbase Go SDK + * [gocql](http://gocql.github.io) - A Go language driver for Apache Cassandra. + * [gomemcache](https://github.com/bradfitz/gomemcache/) - memcache client library for the Go programming language. + * [gorethink](https://github.com/dancannon/gorethink) - Go language driver for RethinkDB + * [mgo](http://godoc.org/labix.org/v2/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](https://github.com/cihangir/neo4j) - Neo4j Rest API Bindings for Golang + * [Neo4j-GO](https://github.com/davemeehan/Neo4j-GO) - Neo4j REST Client in golang. + * [neoism](https://github.com/jmcvetta/neoism) - Neo4j client for Golang + * [redigo](https://github.com/garyburd/redigo) - Redigo is a Go client for the Redis database. + * [redis](https://github.com/go-redis/redis) - Redis client for Golang + * [redis](https://github.com/hoisie/redis) - A simple, powerful Redis client for Go. + +* Search and Analytic Databases + * [bleve](https://github.com/blevesearch/bleve) - A modern text indexing library for go. + * [elastic](https://github.com/olivere/elastic) - Elasticsearch client for Google Go. + * [elastigo](https://github.com/mattbaird/elastigo) - A Elasticsearch client library. + * [goes](https://github.com/belogik/goes) - A library to interact with Elasticsearch. + +## Date & Time + +*Libraries for working with dates and times.* + +* [now](https://github.com/jinzhu/now) - Now is a time toolkit for golang. +* [timeutil](https://github.com/leekchan/timeutil) - Useful extensions (Timedelta, Strftime, ...) to the golang's time package. + + +## Distributed Systems + +*Packages that help with building Distributed Systems.* + +* [flowgraph](https://github.com/vectaport/flowgraph) - MPI-style ready-send coordination layer. +* [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. +* [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. +* [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC. +* [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. +* [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. + * [dht](https://godoc.org/github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. + +## Email + +*Libraries that implement email creation and sending* + +* [douceur](https://github.com/aymerick/douceur) - CSS inliner for your HTML emails. +* [email](https://github.com/jordan-wright/email) - A robust and flexible email library for Go. +* [go-dkim](https://github.com/toorop/go-dkim) - A DKIM library, to sign & verify email. +* [Gomail](https://github.com/go-gomail/gomail/) - Gomail is a very simple and powerful package to send emails. +* [MailHog](https://github.com/mailhog/MailHog) - Email and SMTP testing with web and API interface +* [SendGrid](https://github.com/sendgrid/sendgrid-go) - SendGrid's Go library for sending email +* [smtp](https://github.com/mailhog/smtp) - SMTP server protocol state machine + + + +## Embeddable Scripting Languages + +*Embedding other languages inside your go code* + +* [agora](https://github.com/PuerkitoBio/agora) - Dynamically typed, embeddable programming language in Go +* [anko](https://github.com/mattn/anko) - Scriptable interpreter written in Go +* [gisp](https://github.com/jcla1/gisp) - Simple LISP in Go +* [go-duktape](https://github.com/olebedev/go-duktape) - Duktape JavaScript engine bindings for Go +* [go-lua](https://github.com/Shopify/go-lua) - A port of the Lua 5.2 VM to pure Go +* [go-python](https://github.com/sbinet/go-python) - naive go bindings to the CPython C-API +* [golua](https://github.com/aarzilli/golua) - Go bindings for Lua C API +* [gopher-lua](https://github.com/yuin/gopher-lua) - a Lua 5.1 VM and compiler written in Go +* [otto](https://github.com/robertkrimen/otto) - A JavaScript interpreter written in Go +* [purl](https://github.com/ian-kent/purl) - Perl 5.18.2 embedded in Go + + +## Financial + +*Packages for accounting and finance* + +* [accounting](https://github.com/leekchan/accounting) - money and currency formatting for golang +* [decimal](https://github.com/shopspring/decimal) - Arbitrary-precision fixed-point decimal numbers + + +## Forms + +*Libraries for working with forms.* + +* [bind](https://github.com/robfig/bind) - Bind form data to any Go values +* [binding](https://github.com/mholt/binding) - Binds form and JSON data from net/http Request to struct. +* [formam](https://github.com/monoculum/formam) - decode form's values into a struct. +* [forms](https://github.com/albrow/forms) - A framework-agnostic library for parsing and validating form/JSON data which supports multipart forms and files. +* [nosurf](https://github.com/justinas/nosurf) - A CSRF protection middleware for Go. + + +## Game Development + +*Awesome game development libraries.* + +* [GarageEngine](https://github.com/vova616/GarageEngine) - 2d game engine written in Go working on OpenGL. +* [glop](https://github.com/runningwild/glop) - Glop (Game Library Of Power) is a fairly simple cross-platform game library. +* [go-astar](https://github.com/beefsack/go-astar) - Go implementation of the A* path finding algorithm +* [go-collada](https://github.com/GlenKelley/go-collada) - Go package for working with the Collada file format. +* [go-sdl2](https://github.com/veandco/go-sdl2) - Go bindings for the [Simple DirectMedia Layer](https://www.libsdl.org/). +* [go3d](https://github.com/ungerik/go3d) - A performance oriented 2D/3D math package for Go +* [gonet](https://github.com/xtaci/gonet) - A game server skeleton implemented with golang +* [Leaf](https://github.com/name5566/leaf) - A lightweight game server framework + + +## Generation & Generics + +*Tools to enhance the language with features like generics via code generation* + +* [gen](https://github.com/clipperhouse/gen) - Code generation tool for ‘generics’-like functionality. +* [go-linq](https://github.com/ahmetalpbalkan/go-linq) - .NET LINQ-like query methods for Go. +* [pkgreflect](https://github.com/ungerik/pkgreflect) - A Go preprocessor for package scoped reflection. + + +## GUI + +*Libraries for building GUI Applications* + +* [go-gtk](http://mattn.github.io/go-gtk/) - Go bindings for GTK +* [go-qml](https://github.com/go-qml/qml) - QML support for the Go language +* [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go. +* [gotk3](https://github.com/conformal/gotk3) - Go bindings for GTK3. +* [gxui](https://github.com/google/gxui) - A Go cross platform UI library. +* [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. +* [walk](https://github.com/lxn/walk) - Windows application library kit for Go. + +## Hardware + +*Libraries, tools, and tutorials for interacting with hardware.* + +See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive list. + +## Images + +*Libraries for manipulating images.* + +* [bimg](https://github.com/h2non/bimg) - Small package for fast and efficient image processing using libvips +* [geopattern](https://github.com/pravj/geopattern) - Create beautiful generative image patterns from a string. +* [gift](https://github.com/disintegration/gift) - Package of image processing filters. +* [go-cairo](https://github.com/ungerik/go-cairo) - Go binding for the cairo graphics library. +* [go-gd](https://github.com/bolknote/go-gd) - Go binding for GD library +* [go-nude](https://github.com/koyachi/go-nude) - Nudity detection with Go. +* [go-opencv](https://github.com/lazywei/go-opencv) - Go bindings for OpenCV. +* [go-webcolors](https://github.com/jyotiska/go-webcolors) - Port of webcolors library from Python to Go. +* [imagick](https://github.com/gographics/imagick) - Go binding to ImageMagick's MagickWand C API. +* [imaginary](https://github.com/h2non/imaginary) - Fast and simple HTTP microservice for image resizing +* [imaging](https://github.com/disintegration/imaging) - Simple Go image processing package. +* [img](https://github.com/hawx/img) - A selection of image manipulation tools. +* [picfit](https://github.com/thoas/picfit) - An image resizing server written in Go +* [resize](https://github.com/nfnt/resize) - Image resizing for the Go with common interpolation methods. +* [rez](https://github.com/bamiaux/rez) - Image resizing in pure Go and SIMD. +* [smartcrop](https://github.com/muesli/smartcrop) - Finds good crops for arbitrary images and crop sizes +* [svgo](https://github.com/ajstarks/svgo) - Go Language Library for SVG generation. +* [tga](https://github.com/ftrvxmtrx/tga) - Package tga is a TARGA image format decoder/encoder. + +## Logging + +*Libraries for generating and working with log files.* + +* [glog](https://github.com/golang/glog) - Leveled execution logs for Go. +* [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Cosole, Simple Console, File or Elasticsearch. +* [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers. +* [go-log](https://github.com/ian-kent/go-log) - A log4j implementation in Go. +* [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. +* [log-voyage](https://github.com/firstrow/logvoyage) - Full-featured logging saas written in golang. +* [logex](https://github.com/go-logex/logex) - An golang log lib, supports tracking and level, wrap by standard log lib +* [logrus](https://github.com/Sirupsen/logrus) - a structured logger for Go. +* [logrusly](https://github.com/sebest/logrusly) - [logrus](https://github.com/sirupsen/logrus) plug-in to send errors to a [Loggly](https://www.loggly.com/). +* [logutils](https://github.com/hashicorp/logutils) - Utilities for slightly better logging in Go (Golang) extending the standard logger. +* [logxi](https://github.com/mgutz/logxi) - A 12-factor app logger that is fast and makes you happy. +* [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser. +* [mlog](https://github.com/jbrodriguez/mlog) - A simple logging module for go, with 5 levels, an optional rotating logfile feature and stdout/stderr output. +* [seelog](https://github.com/cihub/seelog) - logging functionality with flexible dispatching, filtering, and formatting. +* [stdlog](https://github.com/alexcesaro/log) - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs. +* [tail](https://github.com/ActiveState/tail) - A Go package striving to emulate the features of the BSD tail program. + +## Machine Learning + +*Libraries for Machine Learning.* + +* [bayesian](https://github.com/jbrukh/bayesian) - Naive Bayesian Classification for Golang. +* [CloudForest](https://github.com/ryanbressler/CloudForest) - Fast, flexible, multi-threaded ensembles of decision trees for machine learning in pure Go. +* [go-fann](https://github.com/white-pony/go-fann) - Go bindings for Fast Artificial Neural Networks(FANN) library. +* [go-galib](https://github.com/thoj/go-galib) - Genetic Algorithms library written in Go / golang +* [go-pr](https://github.com/daviddengcn/go-pr) - Pattern recognition package in Go lang. +* [gobrain](https://github.com/goml/gobrain) - Neural Networks written in go +* [godist](https://github.com/e-dard/godist) - Various probability distributions, and associated methods. +* [GoLearn](https://github.com/sjwhitworth/golearn) - General Machine Learning library for Go. +* [golinear](https://github.com/danieldk/golinear) - liblinear bindings for Go +* [goml](https://github.com/cdipaolo/goml) - On-line Machine Learning in Go +* [goRecommend](https://github.com/timkaye11/goRecommend) - Recommendation Algorithms library written in Go. +* [libsvm](https://github.com/datastream/libsvm) - libsvm golang version derived work based on LIBSVM 3.14. +* [mlgo](https://code.google.com/p/mlgo/) - This project aims to provide minimalistic machine learning algorithms in Go. +* [neural-go](https://github.com/schuyler/neural-go) - A multilayer perceptron network implemented in Go, with training via backpropagation. +* [probab](https://code.google.com/p/probab/) - Probability distribution functions. Bayesian inference. Written in pure Go. +* [regommend](https://github.com/muesli/regommend) - Recommendation & collaborative filtering engine +* [shield](https://github.com/eaigner/shield) - Bayesian text classifier with flexible tokenizers and storage backends for Go + + +## Messaging + +*Libraries that implement messaging systems* + +* [dbus](https://github.com/godbus/dbus) - Native Go bindings for D-Bus. +* [EventBus](https://github.com/asaskevich/EventBus) - The lightweight event bus with async compatibility. +* [go-notify](https://github.com/TheCreeper/go-notify) - Native implementation of the freedesktop notification spec. +* [go-nsq](https://github.com/bitly/go-nsq) - the official Go package for NSQ +* [gopush-cluster](https://github.com/Terry-Mao/gopush-cluster) - gopush-cluster is a go push server cluster. +* [machinery](https://github.com/RichardKnop/machinery) - An asynchronous task queue/job queue based on distributed message passing. +* [NATS](https://github.com/apcera/nats) - A lightweight and highly performant publish-subscribe and distributed queueing messaging system. +* [oplog](https://github.com/dailymotion/oplog) - A generic oplog/replication system for REST APIs +* [pubsub](https://github.com/tuxychandru/pubsub) - A simple pubsub package for go. +* [sarama](https://github.com/Shopify/sarama) - A Go library for Apache Kafka. +* [Uniqush-Push](https://github.com/uniqush/uniqush-push) - A redis backed unified push service for server-side notifications to mobile devices. +* [zmq4](https://github.com/pebbe/zmq4) - A Go interface to ZeroMQ version 4. Also available for [version 3](https://github.com/pebbe/zmq3) and [version 2](https://github.com/pebbe/zmq2). + + +## Miscellaneous + +*These libraries were placed here because none of the other categories seemed to fit* + +* [autoflags](https://github.com/artyom/autoflags) - Go package to automatically define command line flags from struct fields. +* [browscap_go](https://github.com/fromYukki/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). +* [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser +* [go-multierror](https://github.com/hashicorp/go-multierror) - A Go (golang) package for representing a list of errors as a single error. +* [gopsutil](https://github.com/shirou/gopsutil) - A cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc). +* [jobs](https://github.com/albrow/jobs) - A persistent and flexible background jobs library. +* [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. +* [xkg](https://github.com/go-xkg/xkg) - X Keyboard Grabber +* [xstrings](https://github.com/huandu/xstrings) - A collection of useful string functions ported from other languages. + +## Natural Language Processing + +*Libraries for working with human languages.* + +* [go-eco](https://code.google.com/p/go-eco/) - Similarity, dissimilarity and distance matrices; diversity, equitability and inequality measures; species richness estimators; coenocline models. +* [go-nlp](https://github.com/nuance/go-nlp) - Utilities for working with discrete probability distributions and other tools useful for doing NLP work. +* [go-stem](https://github.com/agonopol/go-stem) - Implementation of the porter stemming algorithm. +* [golibstemmer](https://github.com/rjohnsondev/golibstemmer) - Go bindings for the snowball libstemmer library including porter 2 +* [gounidecode](https://github.com/fiam/gounidecode) - Unicode transliterator (also known as unidecode) for Go +* [icu](https://github.com/goodsign/icu) - Cgo binding for icu4c C library detection and conversion functions. Guaranteed compatibility with version 50.1. +* [libtextcat](https://github.com/goodsign/libtextcat) - Cgo binding for libtextcat C library. Guaranteed compatibility with version 2.2. +* [MMSEGO](https://github.com/awsong/MMSEGO) - This is a GO implementation of [MMSEG](http://technology.chtsai.org/mmseg/) which a Chinese word splitting algorithm. +* [paicehusk](https://github.com/Rookii/paicehusk) - Golang implementation of the Paice/Husk Stemming Algorithm +* [porter](https://github.com/a2800276/porter) - This is a fairly straighforward port of Martin Porter's C implementation of the Porter stemming algorithm. +* [porter2](https://github.com/surge/porter2) - Really fast Porter 2 stemmer. +* [segment](https://github.com/blevesearch/segment) - A Go library for performing Unicode Text Segmentation as described in [Unicode Standard Annex #29](http://www.unicode.org/reports/tr29/) +* [snowball](https://github.com/goodsign/snowball) - Snowball stemmer port (cgo wrapper) for Go. Provides word stem extraction functionality [Snowball native](http://snowball.tartarus.org/). +* [stemmer](https://github.com/dchest/stemmer) - Stemmer packages for Go programming language. Includes English and German stemmers. +* [textcat](https://github.com/pebbe/textcat) - A Go package for n-gram based text categorization, with support for utf-8 and raw text + +## Networking + +*Libraries for working with various layers of the network* + +* [arp](https://github.com/mdlayher/arp) - Package arp implements the ARP protocol, as described in RFC 826. +* [buffstreams](https://github.com/stabbycutyou/buffstreams) - Streaming protocolbuffer data over TCP made easy +* [canopus](https://github.com/zubairhamed/canopus) - CoAP Client/Server implementation (RFC 7252) +* [dhcp6](https://github.com/mdlayher/dhcp6) - Package dhcp6 implements a DHCPv6 server, as described in RFC 3315. +* [dns](https://github.com/miekg/dns) - Go library for working with DNS +* [ethernet](https://github.com/mdlayher/ethernet) - Package ethernet implements marshaling and unmarshaling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags. +* [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](http://tools.ietf.org/html/rfc959). +* [go-stun](https://github.com/ccding/go-stun) - A go implementation of the STUN client (RFC 3489 and RFC 5389). +* [gopacket](https://github.com/google/gopacket) - A Go library for packet processing with libpcap bindings +* [gopcap](https://github.com/akrennmair/gopcap) - A Go wrapper for libpcap +* [gosnmp](https://github.com/soniah/gosnmp) - Native Go library for performing SNMP actions +* [gotcp](https://github.com/gansidui/gotcp) - A Go package for quickly writing tcp applications +* [graval](https://github.com/koofr/graval) - An experimental FTP server framework. +* [linkio](https://github.com/ian-kent/linkio) - Network link speed simulation for Reader/Writer interfaces +* [mdns](https://github.com/hashicorp/mdns) - Simple mDNS (Multicast DNS) client/server library in Golang +* [portproxy](https://github.com/aybabtme/portproxy) - Simple TCP proxy which adds CORS support to API's which don't support it. +* [raw](https://github.com/mdlayher/raw) - Package raw enables reading and writing data at the device driver level for a network interface. +* [sftp](https://github.com/pkg/sftp) - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. +* [tcp_server](https://github.com/firstrow/tcp_server) - A Go library for building tcp servers faster. +* [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. + +## OpenGL + +*Libraries for using OpenGL in Go.* + +* [gl](https://github.com/go-gl/gl) - Go bindings for OpenGL (generated via glow). +* [glfw](https://github.com/go-gl/glfw) - Go bindings for GLFW 3. +* [goxjs/gl](https://github.com/goxjs/gl) - Go cross-platform OpenGL bindings (OS X, Linux, Windows, browsers, iOS, Android). +* [goxjs/glfw](https://github.com/goxjs/glfw) - Go cross-platform glfw library for creating an OpenGL context and receiving events. +* [mathgl](https://github.com/go-gl/mathgl) - Pure Go math package specialized for 3D math, with inspiration from GLM. + + +## ORM + +*Libraries that implement Object-Relational Mapping or datamapping techniques.* + +* [beego orm](https://github.com/astaxie/beego/tree/master/orm) - A powerful orm framework for go. +* [go-store](https://github.com/gosuri/go-store) - A simple and fast Redis backed key-value store library for Go. +* [gomodel](https://github.com/cosiner/gomodel) - A lightweight, fast, orm-like library helps interactive with database. +* [GORM](https://github.com/jinzhu/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. +* [gorp](https://github.com/go-gorp/gorp) - Go Relational Persistence, ORM-ish library for Go. +* [hood](https://github.com/eaigner/hood) - Database agnostic ORM for Go. +* [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. +* [upper.io/db](https://github.com/upper/db) - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers. +* [Xorm](https://github.com/go-xorm/xorm) - Simple and powerful ORM for Go. +* [Zoom](https://github.com/albrow/zoom) - A blazing-fast datastore and querying engine built on Redis. + + +## Package Management + +*Libraries for package and dependency management.* + +* [gigo](https://github.com/LyricalSecurity/gigo) - PIP-like dependency tool for golang, with support for private repositories and hashes. +* [godep](https://github.com/tools/godep) - dependency tool for go, godep helps build packages reproducibly by fixing their dependencies. +* [gom](https://github.com/mattn/gom) - Go Manager - bundle for go. +* [goop](https://github.com/nitrous-io/goop) - A simple dependency manager for Go (golang), inspired by Bundler. +* [gopm](https://github.com/gpmgo/gopm) - Go Package Manager +* [gpm](https://github.com/pote/gpm) - Barebones dependency manager for Go. +* [johnny-deps](https://github.com/VividCortex/johnny-deps) - Minimal dependency version using Git +* [nut](https://github.com/jingweno/nut) - Vendor Go dependencies +* [VenGO](https://github.com/DamnWidget/VenGO) - create and manage exportable isolated go virtual environments + + +## Resource Embedding + +* [go-bindata](https://github.com/jteeuwen/go-bindata) - Package that converts any file into managable Go source code. +* [go-resources](https://github.com/omeid/go-resources) - Unfancy resources embedding with Go. +* [go.rice](https://github.com/GeertJohan/go.rice) - go.rice is a Go package that makes working with resources such as html,js,css,images and templates very easy. +* [vfsgen](https://github.com/shurcooL/vfsgen) - Generates a vfsdata.go file that statically implements the given virtual filesystem. + + +## Science and Data Analysis + +*Libraries for scientific computing and data analyzing.* + +* [blas](https://github.com/ziutek/blas) - Implementation of BLAS (Basic Linear Algebra Subprograms) +* [chart](https://github.com/vdobler/chart) - Simple Chart Plotting library for Go. Supports many graphs types. +* [evaler](https://github.com/soniah/evaler) - A simple floating point arithmetic expression evaluator +* [ewma](https://github.com/VividCortex/ewma) - Exponentially-weighted moving averages +* [geom](https://github.com/skelterjohn/geom) - 2D geometry for golang +* [go-fn](https://code.google.com/p/go-fn/) - Mathematical functions written in Go language, that are not covered by math pkg +* [go-gt](https://code.google.com/p/go-gt/) - Graph theory algorithms written in "Go" language +* [go.matrix](https://github.com/skelterjohn/go.matrix) - linear algebra for go (has been stalled) +* [gocomplex](https://code.google.com/p/gocomplex/) - A complex number library for the Go programming language. +* [gofrac](https://github.com/anschelsc/gofrac) - A (goinstallable) fractions library for go with support for basic arithmetic. +* [gohistogram](https://github.com/VividCortex/gohistogram) - Approximate histograms for data streams +* [gonum/mat64](https://github.com/gonum/matrix) - The general purpose package for matrix computation. Package mat64 provides basic linear algebra operations for float64 matrices. +* [gonum/plot](https://github.com/gonum/plot) - gonum/plot provides an API for building and drawing plots in Go. +* [goraph](https://github.com/gyuho/goraph) - A pure Go graph theory library(data structure, algorith visualization) +* [gostat](https://code.google.com/p/gostat/) - A statistics library for the go language +* [mudlark-go](https://code.google.com/p/mudlark-go-pkgs/) - A collection of packages providing (hopefully) useful code for use in software using Google's Go programming language. +* [pagerank](https://github.com/alixaxel/pagerank) - Weighted PageRank algorithm implemented in Go +* [streamtools](https://github.com/nytlabs/streamtools) - general purpose, graphical tool for dealing with streams of data. +* [vectormath](https://github.com/spate/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) + + +## Security + +*Libraries that are used to help make your application more secure.* + +* [BadActor](https://github.com/jaredfolkins/badactor) - An in-memory, application-driven jailer built in the spirit of fail2ban +* [go-yara](https://github.com/hillu/go-yara) - Go Bindings for [YARA](https://github.com/plusvic/yara), the "pattern matching swiss knife for malware researchers (and everyone else)" + +## Serialization + +*Libraries and tools for binary serialization* + +* [cbor](https://github.com/2tvenom/cbor) - Golang library for working with cbor binary format +* [go-capnproto](https://github.com/glycerine/go-capnproto) - Cap'n Proto library and parser for go + * [bambam](https://github.com/glycerine/bambam) - generator for Cap'n Proto schemas from go. +* [gogoprotobuf](https://github.com/gogo/protobuf) - Protocol Buffers for Go with Gadgets +* [goprotobuf](https://github.com/golang/protobuf) - Go support, in the form of a library and protocol compiler plugin, for Google's protocol buffers. +* [mapstructure](https://github.com/mitchellh/mapstructure) - Go library for decoding generic map values into native Go structures. +* [php_session_decoder](https://github.com/yvasiyarov/php_session_decoder) - GoLang library for working with PHP session format and PHP Serialize/Unserialize functions +* [structomap](https://github.com/tuvistavie/structomap) - Library to easily and dynamically generate maps from static structures. + + +## Server Applications + +* [algernon](https://github.com/xyproto/algernon) - HTTP/2 web server with built-in support for Lua, Markdown, GCSS and Amber. +* [Caddy](https://github.com/mholt/caddy) - Caddy is an alternative, HTTP/2 web server that's easy to configure and use. +* [etcd](https://github.com/coreos/etcd) - A highly-available key value store for shared configuration and service discovery. +* [nsq](http://nsq.io/) - A realtime distributed messaging platform +* [yakvs](https://github.com/sci4me/yakvs) - A small, networked, in-memory key-value store. + + +## Template Engines + +*Libraries and tools for templating and lexing.* + +* [ace](https://github.com/yosssi/ace) - Ace is an HTML template engine for Go, inspired by Slim and Jade. Ace is a refinement of Gold. +* [amber](https://github.com/eknkc/amber) - Amber is an elegant templating engine for Go Programming Language It is inspired from HAML and Jade. +* [damsel](https://github.com/dskinner/damsel) - Markup language featuring html outlining via css-selectors, extensible via pkg html/template and others. +* [ego](https://github.com/benbjohnson/ego) - A lightweight templating language that lets you write templates in Go. Templates are translated into Go and compiled. +* [kasia.go](https://github.com/ziutek/kasia.go) - Templating system for HTML and other text documents - go implementation. +* [mustache](https://github.com/hoisie/mustache) - A Go implementation of the Mustache template language. +* [pongo2](https://github.com/flosch/pongo2) - A Django-like template-engine for Go. +* [raymond](https://github.com/aymerick/raymond) - A complete handlebars implementation in Go. +* [Razor](https://github.com/sipin/gorazor) - Razor view engine for Golang. +* [Soy](https://github.com/robfig/soy) - Closure templates (aka Soy templates) for Go, following the [official spec](https://developers.google.com/closure/templates/) + + +## Testing + +*Libraries for testing codebases and generating test data.* + +* Testing Frameworks + * [assert](https://github.com/bluesuncorp/assert) - Basic Assertion Library used along side native go testing, with building blocks for custom assertions + * [assert](https://github.com/bmizerany/assert) - Asserts to Go testing + * [bro](https://github.com/marioidival/bro) - Watch files in directory and run tests for them + * [ginkgo](http://onsi.github.io/ginkgo/) - BDD Testing Framework for Go + * [go-mutesting](https://github.com/zimmski/go-mutesting) - Mutation testing for Go source code + * [goblin](https://github.com/franela/goblin) - Mocha like testing framework fo Go + * [gocheck](http://labix.org/gocheck) - A more advanced testing framework alternative to gotest. + * [GoConvey](https://github.com/smartystreets/goconvey/) - BDD-style framework with web UI and live reload + * [godog](https://github.com/DATA-DOG/godog) - Cucumber or Behat like BDD framework for Go. + * [GoSpec](https://github.com/orfjackal/gospec) - BDD-style testing framework for the Go programming language. + * [gospecify](https://github.com/stesla/gospecify) - This provides a BDD syntax for testing your Go code. It should be familiar to anybody who has used libraries such as rspec. + * [Hamcrest](https://github.com/rdrdr/hamcrest) - fluent framework for declarative Matcher objects that, when applied to input values, produce self-describing results. + * [restit](https://github.com/yookoala/restit) - A Go micro framework to help writing RESTful API integration test. + * [Testify](https://github.com/stretchr/testify) - A sacred extension to the standard go testing package. + +* Mock + * [counterfeiter](https://github.com/maxbrunsfeld/counterfeiter) - Tool for generating self-contained mock objects + * [go-sqlmock](https://github.com/DATA-DOG/go-sqlmock) - Mock SQL driver for testing database interactions + * [go-txdb](https://github.com/DATA-DOG/go-txdb) - Single transaction based database driver mainly for testing purposes. + * [gomock](https://github.com/golang/mock) - Mocking framework for the Go programming language. + * [mockhttp](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter + +* Fuzzing and delta-debugging/reducing/shrinking + * [go-fuzz](https://github.com/dvyukov/go-fuzz) - A randomized testing system + * [gofuzz](https://github.com/google/gofuzz) - A library for populating go objects with random values + * [gogenerate](https://github.com/arschles/gogenerate) - A Scalacheck-like library for Go + * [Tavor](https://github.com/zimmski/tavor) - A generic fuzzing and delta-debugging framework + +## Text Processing + +*Libraries for parsing and manipulating texts.* + +* Specific Formats + * [blackfriday](https://github.com/russross/blackfriday) - Markdown processor in Go + * [github_flavored_markdown](https://godoc.org/github.com/shurcooL/github_flavored_markdown) - GitHub Flavored Markdown renderer with fenced code block highlighting, clickable header anchor links. + * [bluemonday](https://github.com/microcosm-cc/bluemonday) - HTML Sanitizer + * [enca](https://github.com/endeveit/enca) - Minimal cgo bindings for [libenca](http://cihar.com/software/enca/). + * [genex](https://github.com/alixaxel/genex) - Count and expand Regular Expressions into all matching Strings + * [go-humanize](https://github.com/dustin/go-humanize) - Formatters for time, numbers, and memory size to human readable format. + * [go-nmea](https://github.com/adrianmo/go-nmea) - NMEA parser library for the Go language. + * [go-pkg-rss](https://github.com/jteeuwen/go-pkg-rss) - This package reads RSS and Atom feeds and provides a caching mechanism that adheres to the feed specs. + * [go-pkg-xmlx](https://github.com/jteeuwen/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. + * [go-runewidth](https://github.com/mattn/go-runewidth) - Functions to get fixed width of the character or string. + * [gographviz](https://github.com/awalterschulze/gographviz) - Parses the Graphviz DOT language. + * [gommon/gytes](https://github.com/labstack/gommon/tree/master/gytes) - Format bytes to string. + * [gonameparts](https://github.com/polera/gonameparts) - Parses human names into individual name parts + * [GoQuery](https://github.com/PuerkitoBio/goquery) - GoQuery brings a syntax and a set of features similar to jQuery to the Go language. + * [goregen](https://github.com/zach-klippenstein/goregen) - A library for generating random strings from regular expressions. + * [guesslanguage](https://github.com/endeveit/guesslanguage) - Functions to determine the natural language of a unicode text. + * [mxj](https://github.com/clbanning/mxj) - Encode / decode XML as JSON or map[string]interface{}; extract values with dot-notation paths and wildcards. Replaces x2j and j2x packages. + * [slug](https://github.com/gosimple/slug) - URL-friendly slugify with multiple languages support. + * [Slugify](https://github.com/avelino/slugify) - A Go slugify application that handles string. + * [toml](https://github.com/BurntSushi/toml) - TOML configuration format (encoder/decoder with reflection). +* Utility + * [gotabulate](https://github.com/bndr/gotabulate) - Easily pretty-print your tabular data with Go. + * [xurls](https://github.com/mvdan/xurls) - Extract urls from text + + +## Third-party APIs + +*Libraries for accessing third party APIs.* + +* [anaconda](https://github.com/ChimeraCoder/anaconda) - A Go client library for the Twitter 1.1 API +* [aws-sdk-go](https://github.com/aws/aws-sdk-go) - The official AWS SDK for the Go programming language. Caution: The SDK is currently in the process of being developed, and not everything may be working fully yet. +* [brewerydb](https://github.com/naegelejd/brewerydb) - Go library for accessing the BreweryDB API. +* [facebook](https://github.com/huandu/facebook) - Go Library that supports the Facebook Graph API +* [gads](https://github.com/emiddleton/gads) - Google Adwords Unofficial API +* [gami](https://github.com/bit4bit/gami) - Go library for Asterisk Manager Interface. +* [geo-golang](https://github.com/codingsince1985/geo-golang) - Go Library to access [Google Maps](https://developers.google.com/maps/documentation/geocoding/), [MapQuest](http://open.mapquestapi.com/geocoding/), [Nominatim](http://open.mapquestapi.com/nominatim/), [OpenCage](http://geocoder.opencagedata.com/api.html), [HERE](https://developer.here.com/rest-apis/documentation/geocoder) and [Bing](https://msdn.microsoft.com/en-us/library/ff701715.aspx) geocoding / reverse geocoding APIs. +* [github](https://github.com/google/go-github) - Go library for accessing the GitHub API. +* [go-marathon](https://github.com/gambol99/go-marathon) - A Go library for interacting with Mesosphere's Marathon PAAS +* [goamz](https://github.com/mitchellh/goamz) - Popular fork of [goamz](https://launchpad.net/goamz) which adds some missing API calls to certain packages. +* [GoMusicBrainz](https://github.com/michiwend/gomusicbrainz) - a Go MusicBrainz WS2 client library +* [google](https://github.com/google/google-api-go-client) - Auto-generated Google APIs for Go +* [google-analytics](https://github.com/chonthu/go-google-analytics) - A simple wrapper for easy google analytics reporting +* [google-cloud](https://github.com/GoogleCloudPlatform/gcloud-golang) - Google Cloud APIs Go Client Library +* [gostorm](https://github.com/jsgilmore/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. +* [hipchat](https://github.com/andybons/hipchat) - This project implements a golang client library for the Hipchat API. +* [hipchat (xmpp)](https://github.com/daneharrigan/hipchat) - A golang package to communicate with HipChat over XMPP. +* [mixpanel](https://github.com/dukex/mixpanel) - Mixpanel is a library for tracking events and sending Mixpanel profile updates to Mixpanel from your go applications. +* [pushover](https://github.com/gregdel/pushover) - Go wrapper for the Pushover API. +* [rrdaclient](https://github.com/Omie/rrdaclient) - Go Library to access statdns.com API, which is in turn RRDA API. DNS Queries over HTTP. +* [shopify](https://github.com/rapito/go-shopify) - Go Library to make CRUD request to the Shopify API. +* [smite](https://github.com/sergiotapia/smitego) - Go package to wraps access to the Smite game API. +* [snapchat](https://github.com/jamieomatthews/gosnap) - Go wrapper for the snapchat API +* [spotify](https://github.com/rapito/go-spotify) - Go Library to access Spotify WEB API. +* [steam](https://github.com/sostronk/go-steam) - Go Library to interact with Steam game servers. +* [stripe](https://github.com/stripe/stripe-go) - Go client for the Stripe API +* [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - A simple golang package to communicate with [themoviedb.org](https://themoviedb.org) +* [translate](https://github.com/poorny/translate) - Go online translation package +* [tumblr](https://github.com/mattcunningham/gumblr) - Go wrapper for the Tumblr v2 API. + +## Utilities + +*General utilities and tools to make your life easier.* + +* [coop](https://github.com/rakyll/coop) - Cheat sheet for some of the common concurrent flows in Go. +* [delve](https://github.com/derekparker/delve) - Go debugger. +* [fastlz](https://github.com/fromYukki/fastlz) - Wrap over [FastLz](http://fastlz.org/) (free, open-source, portable real-time compression library) for GoLang. +* [go-cron](https://github.com/rk/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. +* [go-debug](https://github.com/tj/go-debug) - Conditional debug logging for Golang libraries & applications +* [go-dry](https://github.com/ungerik/go-dry) - DRY (don't repeat yourself) package for Go. +* [go-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities. +* [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. +* [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons +* [godotenv](https://github.com/joho/godotenv) - A Go port of Ruby's dotenv library (Loads environment variables from `.env`.) +* [godropbox](https://github.com/dropbox/godropbox) - Common libraries for writing Go services/applications from Dropbox. +* [gohper](https://github.com/cosiner/gohper) - Various tools/modules help for development. +* [golarm](https://github.com/msempere/golarm) - Fire alarms with system events. +* [gopencils](https://github.com/bndr/gopencils) - Small and simple package to easily consume REST APIs. +* [goplaceholder](https://github.com/michiwend/goplaceholder) - a small golang lib to generate placeholder images +* [goreq](https://github.com/franela/goreq) - Minimal and simple request library for Go language. +* [gorequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features for Go. +* [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go +* [hystrix-go](https://github.com/afex/hystrix-go) - Imprements Hystrix patterns of programmer-defined fallbacks aka circuit breaker. +* [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. +* [jsongo](https://github.com/ricardolonga/jsongo) - Fluent API to make it easier to create Json objects. +* [lrserver](https://github.com/jaschaephraim/lrserver) - LiveReload server for Go +* [mp](https://github.com/sanbornm/mp) - A simple cli email parser. It currently takes stdin and outputs JSON. +* [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers +* [netbug](https://github.com/e-dard/netbug) - Easy remote profiling of your services. +* [ngrok](https://github.com/inconshreveable/ngrok) - Introspected tunnels to localhost. +* [okrun](https://github.com/xta/okrun) - go run error steamroller +* [panicparse](https://github.com/maruel/panicparse) - Groups similar goroutines and colorizes stack dump. +* [peco](https://github.com/peco/peco) - Simplistic interactive filtering tool +* [pester](https://github.com/sethgrid/pester) - Go HTTP client calls with retries, backoff, and concurrency +* [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API +* [profile](https://github.com/davecheney/profile) - Simple profiling support package for Go +* [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. +* [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics +* [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. +* [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. +* [spinner](https://github.com/briandowns/spinner) - Go package to easily provide a terminal spinner with options. +* [sqlx](https://github.com/jmoiron/sqlx) - provides a set of extensions on top of the excellent built-in database/sql package +* [xlsx](https://github.com/tealeg/xlsx) - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs. + + +## Validation + +*Libraries for validation.* + +* [govalidator](https://github.com/asaskevich/govalidator) - Validators and sanitizers for strings, numerics, slices and structs +* [validator](https://github.com/bluesuncorp/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving + + +## Version Control + +*Libraries for version control.* + +* [gh](https://github.com/rjeczalik/gh) - Scriptable server and net/http middleware for GitHub Webhooks +* [git2go](https://github.com/libgit2/git2go) - Go bindings for libgit2. +* [go-vcs](https://github.com/sourcegraph/go-vcs) - manipulate and inspect VCS repositories in Go. +* [hgo](https://github.com/beyang/hgo) - Hgo is a collection of Go packages providing read-access to local Mercurial repositories. + + +## Video + +*Libraries for manipulating video.* + +* [aac/h264](https://github.com/nareix/codec) - Golang aac/h264 encoder and decoder. +* [gmf](https://github.com/3d0c/gmf) - Go bindings for FFmpeg av\* libraries. +* [goav](https://github.com/giorgisio/goav) - Comphrensive Go bindings for FFmpeg. +* [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer. + + +## Web Frameworks + +*Full stack web frameworks.* + +* [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. +* [Bone](https://github.com/go-zoo/bone) - Lightning Fast HTTP Multiplexer. +* [Echo](https://github.com/labstack/echo) - A fast HTTP router (zero memory allocation) and micro web framework in Go. +* [Gin](https://github.com/gin-gonic/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. +* [Glue](https://github.com/desertbit/glue) - Robust Go and Javascript Socket Library (Alternative to Socket.io) +* [go-json-rest](https://github.com/ant0ine/go-json-rest) - A quick and easy way to setup a RESTful JSON API +* [go-relax](https://github.com/codehack/go-relax) - A framework of pluggable components to build RESTful API's +* [go-rest](https://github.com/ungerik/go-rest) - A small and evil REST framework for Go +* [go-socket.io](https://github.com/googollee/go-socket.io) - socket.io library for golang, a realtime application framework. +* [Goat](https://github.com/bahlo/goat) - A minimalistic REST API server in Go +* [gocraft/web](https://github.com/gocraft/web) - A mux and middleware package in Go. +* [Goji](https://github.com/zenazn/goji) - Goji is a minimalistic web framework for Golang that's high in antioxidants. +* [Gondola](https://github.com/rainycape/gondola) - The web framework for writing faster sites, faster +* [goose](https://github.com/ian-kent/goose) - Server Sent Events in Go +* [Gorilla](https://github.com/gorilla/) - Gorilla is a web toolkit for the Go programming language. +* [httprouter](https://github.com/julienschmidt/httprouter) - A high performance router. Use this and the standard http handlers to form a very high performance web framework. +* [Macaron](https://github.com/Unknwon/macaron) - Macaron is a high productive and modular design web framework in Go. +* [mango](https://github.com/paulbellamy/mango) - Mango is a modular web-application framework for Go, inspired by Rack, and PEP333. +* [Martini](https://github.com/go-martini/martini) - Martini is a powerful package for quickly writing modular web applications/services in Golang. +* [medeina](https://github.com/imdario/medeina) - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba. +* [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API. +* [pat](https://github.com/bmizerany/pat) - Sinatra style pattern muxer for Go’s net/http library, by the author of Sinatra. +* [Resoursea](https://github.com/resoursea/api) - A REST framework for quickly writing resource based services. +* [Revel](https://github.com/revel/revel) - A high-productivity web framework for the Go language. +* [rex](https://github.com/goanywhere/rex) - Rex is a library for modular development built upon gorilla/mux, fully compatible with `net/http`. +* [sawsij](http://sawsij.com/) - lightweight, open-source web framework for building high-performance, data-driven web applications. +* [Siesta](https://github.com/VividCortex/siesta) - Composable framework to write middleware and handlers +* [tango](https://github.com/lunny/tango) - Micro & pluggable web framework for Go. +* [tigertonic](https://github.com/rcrowley/go-tigertonic) - A Go framework for building JSON web services inspired by Dropwizard +* [traffic](https://github.com/pilu/traffic) - Sinatra inspired regexp/pattern mux and web framework for Go. +* [web.go](https://github.com/hoisie/web) - A simple framework to write webapps in Go. +* [Zerver](https://github.com/cosiner/zerver) - Zerver is a expressive, modular, feature completed RESTful framework. +* [zeus](https://github.com/daryl/zeus) - A very simple and fast HTTP router for Go. + + +### Middlewares + +#### Actual middlewares + +* [CORS](https://github.com/rs/cors) - Easily add CORS capabilities to your API +* [formjson](https://github.com/rs/formjson) - Transparently handle JSON input as a standard form POST +* [Tollbooth](https://github.com/didip/tollbooth) - Rate limit HTTP request handler +* [XFF](https://github.com/sebest/xff) - Handle `X-Forwarded-For` header and friends + +#### Libraries for creating HTTP middlewares + +* [alice](https://github.com/justinas/alice) - Painless middleware chaining for Go. +* [go-wrap](https://github.com/go-on/wrap) - Small middlewares package for net/http. +* [interpose](https://github.com/carbocation/interpose) - Minimalist net/http middleware for golang +* [muxchain](https://github.com/stephens2424/muxchain) - Lightweight middleware for net/http. +* [negroni](https://github.com/codegangsta/negroni) - Idiomatic HTTP middleware for Golang. +* [render](https://github.com/unrolled/render) - Go package for easily rendering JSON, XML, and HTML template responses. +* [stats](https://github.com/thoas/stats) - A Go middleware that stores various information about your web application. + +# Tools + +Go software and plugins. + + +## Code Analysis + +* [doc](http://godoc.org/robpike.io/cmd/doc) - Go documentation tool that produces an alternative doc format. +* [dupl](https://github.com/mibk/dupl) - A tool for code clone detection. +* [errcheck](https://github.com/kisielk/errcheck) - Errcheck is a program for checking for unchecked errors in Go programs. +* [gcvis](https://github.com/davecheney/gcvis) - Visualise Go program GC trace data in real time. +* [Go Metalinter](https://github.com/alecthomas/gometalinter) - Metalinter is a tool to automatically apply all static analysis tool and report their output in normalized form. +* [goast-viewer](https://github.com/yuroyoro/goast-viewer) - Web based Golang AST visualizer. +* [GoCover.io](http://gocover.io/) - GoCover.io offers the code coverage of any golang package as a service. +* [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) - Tool to fix (add, remove) your Go imports automatically. +* [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. +* [Golint online](http://go-lint.appspot.com/) - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package. +* [gostatus](https://github.com/shurcooL/gostatus) - A command line tool, shows the status of repositories that contain Go packages. +* [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. + + +## Editor Plugins + +* [go-lang-idea-plugin](https://github.com/go-lang-plugin-org/go-lang-idea-plugin) Go plugin for IntelliJ IDEA. +* [go-plus](https://github.com/joefitzgerald/go-plus) - Go (Golang) Package For Atom That Adds Autocomplete, Formatting, Syntax Checking, Linting and Vetting +* [gocode](https://github.com/nsf/gocode) - An autocompletion daemon for the Go programming language +* [GoSublime](https://github.com/DisposaBoy/GoSublime) - A Golang plugin collection for the text editor SublimeText 2 providing code completion and other IDE-like features. +* [velour](https://github.com/velour/velour) - An IRC client for the acme editor. +* [vim-compiler-go](https://github.com/rjohnsondev/vim-compiler-go) - A Vim plugin to highlight syntax errors on save. +* [vim-go](https://github.com/fatih/vim-go) - Go development plugin for Vim. +* [Watch](https://github.com/eaburns/Watch) - Runs a command in an acme win on file changes. + +## Go Tools + +* [colorgo](https://github.com/songgao/colorgo) - A wrapper around `go` command for colorized `go build` output. + +## Software Packages + +Software written in Go. + + +### DevOps Tools + +* [aptly](https://github.com/smira/aptly) - aptly is a Debian repository management tool +* [awsenv](https://github.com/soniah/awsenv) - a small binary that loads Amazon (AWS) environment variables for a profile +* [Boom](https://github.com/rakyll/boom) - Boom is a tiny program that sends some load to a web application. +* [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). +* [EasySSH](https://github.com/hypersleep/easyssh) - Golang package for easy remote execution through SSH and SCP downloading. +* [gaudi](http://gaudi.io/) - Gaudi automates the setup of isolated and decoupled dev environments. +* [Go Metrics](https://github.com/rcrowley/go-metrics) - Go port of Coda Hale's Metrics library: https://github.com/codahale/metrics. +* [go-selfupdate](https://github.com/sanbornm/go-selfupdate) - Enable your Go applications to self update. +* [gobrew](https://github.com/cryptojuice/gobrew) - gobrew lets you easily switch between multiple versions of go. +* [godbg](https://github.com/sirnewton01/godbg) - Web-based gdb front-end application. +* [Gogs](http://gogs.io/) - A Self Hosted Git Service in the Go Programming Language. +* [gonative](https://github.com/inconshreveable/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. +* [gox](https://github.com/mitchellh/gox) - A dead simple, no frills Go cross compile tool. +* [goxc](https://github.com/laher/goxc) - build tool for Go, with a focus on cross-compiling and packaging. +* [GVM](https://github.com/moovweb/gvm) - GVM provides an interface to manage Go versions. +* [hk](https://github.com/heroku/hk) - Heroku command-line interface in Go. +* [Mora](https://github.com/emicklei/mora) - REST server for accessing MongoDB documents and meta data. +* [ostent](https://github.com/ostrost/ostent) - collects and displays system metrics and optionally relays to Graphite and/or InfluxDB +* [Packer](https://github.com/mitchellh/packer) - Packer is a tool for creating identical machine images for multiple platforms from a single source configuration. +* [Rodent](https://github.com/alouche/rodent) - Rodent helps you manage Go versions, projects and track dependencies. +* [Vegeta] (https://github.com/tsenart/vegeta) - HTTP load testing tool and library. It's over 9000! +* [webhook](https://github.com/adnanh/webhook) - Tool which allows user to create HTTP endpoints (hooks) that execute commands on the server +* [Wide](https://wide.b3log.org) - A Web-based IDE for Teams using Golang. + + +### Other Software +* [boxed](https://github.com/tejo/boxed) - Dropbox based blog engine +* [Circuit](https://github.com/gocircuit/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. +* [Comcast](https://github.com/tylertreat/Comcast) - Simulate bad network connections +* [confd](https://github.com/kelseyhightower/confd) - Manage local application configuration files using templates and data from etcd or consul. +* [Docker](http://www.docker.com/) - An open platform for distributed applications for developers and sysadmins. +* [fleet](https://github.com/coreos/fleet) - A Distributed init System. +* [Go Package Store](https://github.com/shurcooL/Go-Package-Store#go-package-store-) - An app that displays updates for the Go packages in your GOPATH. +* [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. +* [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. +* [heka](https://github.com/mozilla-services/heka) - universal tool for data processing from Mozilla. Large collection of built-in plugins. Extendable via Go and Lua plugin API. +* [hugo](http://gohugo.io/) - A Fast and Modern Static Website Engine +* [Juju](https://juju.ubuntu.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. +* [limetext](http://limetext.org/) 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. +* [naclpipe](https://github.com/unix4fun/naclpipe) - A simple NaCL EC25519 based crypto pipe tool written in Go. +* [nes](https://github.com/fogleman/nes) - A Nintendo Entertainment System (NES) emulator written in Go. +* [orange-cat](https://github.com/noraesae/orange-cat) - A Markdown previewer written in Go. +* [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. +* [plubi](https://github.com/norwack/plubi) - A Golang Plugin Based IRC Bot. +* [Postman](https://github.com/zachlatta/postman) - Command-line utility for batch-sending email. +* [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. +* [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control) +* [syncthing](http://www.syncthing.net/) - An open, decentralized file synchronization tool and protocol. +* [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. +* [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. +* [tsuru](http://www.tsuru.io/) - An extensible and open source Platform as a Service software. +* [websysd](https://github.com/ian-kent/websysd) - Web based process manager (like Marathon or Upstart) + + + + + + + +# Resources + +Where to discover new Go libraries. + + +## Benchmarks + +* [autobench](https://github.com/davecheney/autobench) - Framework to compare the performance between different Go versions. +* [go-http-routing-benchmark](https://github.com/julienschmidt/go-http-routing-benchmark) - Go HTTP request router benchmark and comparison. +* [go-type-assertion-benchmark](https://github.com/hgfischer/go-type-assertion-benchmark) - Naive performance test of two ways to do type assertion in Go. +* [go_serialization_benchmarks](https://github.com/alecthomas/go_serialization_benchmarks) - Benchmarks of Go serialization methods. +* [gocostmodel](https://github.com/PuerkitoBio/gocostmodel) - Benchmarks of common basic operations for the Go language. +* [golang-micro-benchmarks](https://github.com/amscanne/golang-micro-benchmarks) - Tiny collection of Go micro benchmarks. The intent is to compare some language features to others. +* [golang-sql-benchmark](https://github.com/tyler-smith/golang-sql-benchmark) - A collection of benchmarks for popular Go database/SQL utilities. +* [kvbench](https://github.com/jimrobinson/kvbench) - Key/Value database benchmark. +* [speedtest-resize](https://github.com/fawick/speedtest-resize) - Compare various Image resize algorithms for the Go language. + + +## Conferences + +* [dotGo](http://www.dotgo.io) - Paris, France +* [GoCon](http://gocon.connpass.com/) - Tokyo, Japan +* [GolangUK](http://www.golanguk.com/) - London, UK +* [GopherChina](http://gopherchina.org) - Shanghai, China +* [GopherCon](http://www.gophercon.com/) - Denver, USA +* [GopherCon India](http://www.gophercon.in/) - Bengaluru, India +* [GothamGo](http://gothamgo.com/) - New York City, USA + +## E-Books + +* [A Go Developer's Notebook](https://leanpub.com/GoNotebook/read) +* [An Introduction to Programming in Go](http://www.golang-book.com/) +* [Build Web Application with Golang](http://astaxie.gitbooks.io/build-web-application-with-golang/) +* [Building Web Apps With Go](http://codegangsta.gitbooks.io/building-web-apps-with-go/) +* [Go Bootcamp](http://golangbootcamp.com) +* [GoBooks](https://github.com/dariubs/GoBooks) - A curated list of Go books +* [Learning Go](http://www.miek.nl/downloads/Go/Learning-Go-latest.pdf) +* [Network Programming With Go](http://jan.newmarch.name/go/) + + +## Twitter + +* [@golang](https://twitter.com/golang) +* [@golang_news](https://twitter.com/golang_news) +* [@golangweekly](https://twitter.com/golangweekly) + + +## Websites + +* [Awesome Remote Job](https://github.com/lukasz-madon/awesome-remote-job) - A curated list of awesome remote jobs. A lot of them is looking for Go hackers. +* [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) - List of other amazingly awesome lists. +* [Flipboard - Go Magazine](https://flipboard.com/section/the-golang-magazine-bVP7nS) - A collection of Go articles and tutorials. +* [Go Blog](http://blog.golang.org) - The official Go blog +* [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki +* [godoc.org](http://godoc.org/) - Documentation for open source Go packages. +* [golang-graphics](https://github.com/mholt/golang-graphics) - A collection of Go images, graphics, and art +* [golang-nuts](https://groups.google.com/forum/#!forum/golang-nuts) - Go mailing list +* [gowalker.org](https://gowalker.org) - Go Project API documentation. +* [r/Golang](http://www.reddit.com/r/golang) - News about Go. +* [Trending Go repositories on GitHub today](https://github.com/trending?l=go) - Good place to find new Go libraries. + + +### Tutorials + +* [A Tour of Go](http://tour.golang.org/) - Interactive tour of Go +* [Go By Example](https://gobyexample.com/) - A hands-on introduction to Go using annotated example programs +* [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql +* [Working with Go](https://github.com/mkaz/working-with-go) - An intro to go for experienced programmers + + +## Windows + +* [go-ole](https://github.com/mattn/go-ole) - Win32 OLE implementation for golang From 5d6725d32c13b328c65972fa8da60e0794e055d6 Mon Sep 17 00:00:00 2001 From: sadlil Date: Tue, 8 Sep 2015 23:23:29 +0600 Subject: [PATCH 002/108] Add Go logger lib with console, file or ES logging. --- README.md~ | 1046 ---------------------------------------------------- 1 file changed, 1046 deletions(-) delete mode 100644 README.md~ diff --git a/README.md~ b/README.md~ deleted file mode 100644 index 559f206f..00000000 --- a/README.md~ +++ /dev/null @@ -1,1046 +0,0 @@ -# Awesome Go [![Build Status](https://travis-ci.org/avelino/awesome-go.svg?branch=master)](https://travis-ci.org/avelino/awesome-go) [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) - - -A curated list of awesome Go frameworks, libraries and software. Inspired by [awesome-python](https://github.com/vinta/awesome-python). - - -### Contributing - -Please take a quick gander at the [contribution guidelines](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md) first. Thanks to all [contributors](https://github.com/avelino/awesome-go/graphs/contributors); you rock! - -[Join us on Slack](https://gophers.slack.com/messages/awesome/) to chat with other awesome-go maintainers! - -#### *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!* - - -### Contents - -- [Awesome Go](#awesome-go) - - [Audio & Music](#audiomusic) - - [Authentication & OAuth](#authentication--oauth) - - [Command Line](#command-line) - - [Configuration](#configuration) - - [Continuous Integration](#continuous-integration) - - [CSS Preprocessors](#css-preprocessors) - - [Data Structures](#data-structures) - - [Database](#database) - - [Database Drivers](#database-drivers) - - [Date & Time](#date--time) - - [Distributed Systems](#distributed-systems) - - [Email](#email) - - [Embeddable Scripting Languages](#embeddable-scripting-languages) - - [Financial](#financial) - - [Forms](#forms) - - [Game Development](#game-development) - - [Generation & Generics](#generation--generics) - - [GUI](#gui) - - [Hardware](#hardware) - - [Images](#images) - - [Logging](#logging) - - [Machine Learning](#machine-learning) - - [Messaging](#messaging) - - [Miscellaneous](#miscellaneous) - - [Natural Language Processing](#natural-language-processing) - - [Networking](#networking) - - [OpenGL](#opengl) - - [ORM](#orm) - - [Package Management](#package-management) - - [Resource Embedding](#resource-embedding) - - [Science and Data Analysis](#science-and-data-analysis) - - [Security](#security) - - [Serialization](#serialization) - - [Template Engines](#template-engines) - - [Testing](#testing) - - [Text Processing](#text-processing) - - [Third-party APIs](#third-party-apis) - - [Utilities](#utilities) - - [Validation](#validation) - - [Version Control](#version-control) - - [Video](#video) - - [Web Frameworks](#web-frameworks) - - [Middlewares](#middlewares) - - [Actual middlewares](#actual-middlewares) - - [Libraries for creating HTTP middlewares](#libraries-for-creating-http-middlewares) - - [Windows](#windows) - -- [Tools](#tools) - - [Code Analysis](#code-analysis) - - [Editor Plugins](#editor-plugins) - - [Go Tools](#go-tools) - - [Software Packages](#software-packages) - - [DevOps Tools](#devops-tools) - - [Other Software](#other-software) - -- [Server Applications](#server-applications) - -- [Resources](#resources) - - [Benchmarks](#benchmarks) - - [Conferences](#conferences) - - [E-Books](#e-books) - - [Twitter](#twitter) - - [Websites](#websites) - - [Tutorials](#tutorials) - - -## Audio/Music - -*Libraries for manipulating audio.* - -* [flac](https://github.com/eaburns/flac) - A native Go FLAC decoder. -* [go-sox](https://github.com/krig/go-sox) - libsox bindings for go. -* [PortAudio](https://code.google.com/p/portaudio-go/) - Go bindings for the PortAudio audio I/O library. -* [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. -* [taglib](https://github.com/wtolson/go-taglib) - Go bindings for taglib. -* [vorbis](https://github.com/mccoyst/vorbis) - A "native" Go Vorbis decoder (uses CGO, but has no dependencies). -* [waveform](https://github.com/mdlayher/waveform) - Go package capable of generating waveform images from audio streams. - - -## Authentication & OAuth - -*Libraries for implementing authentications schemes.* - -* [Go-AWS-Auth](https://github.com/smartystreets/go-aws-auth) - AWS (Amazon Web Services) request signing library. -* [go-jose](https://github.com/square/go-jose) - A fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. -* [go.auth](https://github.com/bradrydzewski/go.auth) - Authentication API for Go web applications. -* [gorbac](https://github.com/mikespook/gorbac) - provides a lightweight role-based access control (RBAC) implementation in Golang. -* [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple provides out of the box. -* [httpauth](https://github.com/goji/httpauth) - HTTP Authentication middleware. -* [jwt-go](https://github.com/dgrijalva/jwt-go) - Golang implementation of JSON Web Tokens (JWT). -* [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. -* [osin](https://github.com/RangelReale/osin) - Golang OAuth2 server library. -* [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. -* [yubigo](https://github.com/GeertJohan/yubigo) - a Yubikey client package that provides a simple API to integrate the Yubico Yubikey into a go application. - - -## Command Line - - -### Standard CLI - -*Libraries for building standard or basic Command Line applications* - -* [cli-init](https://github.com/tcnksm/cli-init) - The easy way to start building Golang command line application. -* [cobra](https://github.com/spf13/cobra) - A Commander for modern Go CLI interactions -* [codegangsta/cli](https://github.com/codegangsta/cli) - A small package for building command line apps in Go. -* [kingpin](https://github.com/alecthomas/kingpin) - A command line and flag parser supporting sub commands. -* [liner](https://github.com/peterh/liner) - A Go readline-like library for command-line interfaces. -* [mitchellh/cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces. -* [ukautz/clif](https://github.com/ukautz/clif) - A small command line interface framework. - - -### Advanced Console UIs - -*Libraries for building Console Applications and Console User Interfaces* - -* [chalk](https://github.com/ttacon/chalk) - Intuitive package for prettifying terminal/console output. -* [color](https://github.com/fatih/color) - Versatile package for colored terminal output. -* [go-colortext](https://github.com/daviddengcn/go-colortext) - Go library for color output in terminals. -* [gocui](https://github.com/jroimartin/gocui) - Minimalist Go library aimed at creating Console User Interfaces. -* [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. -* [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. -* [termtables](https://github.com/apcera/termtables) - A Go port of the Ruby library [terminal-tables](https://github.com/visionmedia/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output -* [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). - - -## Configuration - -*Libraries for configuration parsing* - -* [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. -* [env](https://github.com/caarlos0/env) - Parse environment variables to Go structs (with defaults). -* [envcfg](https://github.com/tomazk/envcfg) - Un-marshaling environment variables to Go structs. -* [envconf](https://github.com/ian-kent/envconf) - Configuration from environment -* [envconfig](https://github.com/vrischmann/envconfig) - Read your configuration from environment variables. -* [gofigure](https://github.com/ian-kent/gofigure) - Go application configuration made easy -* [ini](https://github.com/go-ini/ini) - Go package for read and write INI files -* [mini](https://github.com/FogCreek/mini) - A golang package for parsing ini-style configuration files -* [viper](https://github.com/spf13/viper) - Go configuration with fangs - -## Continuous Integration - -*Tools for help with continuous integration* - -* [goveralls](https://github.com/mattn/goveralls) - Go integration for Coveralls.io continuous code coverage tracking system. -* [overalls](https://github.com/bluesuncorp/overalls) - Multi-Package go project coverprofile for tools like goveralls - -## CSS Preprocessors - -*Libraries for preprocessing CSS files* - -* [c6](https://github.com/c9s/c6) - High performance SASS compatible-implementation compiler written in Go -* [gcss](https://github.com/yosssi/gcss) - Pure Go CSS Preprocessor. - -## Data Structures - -*Generic datastructures and algorithms in Go.* - -* [bitset](https://github.com/willf/bitset) - Go package implementing bitsets. -* [bloom](https://github.com/surge/bloom) - Bloom filters implemented in Go. -* [boomfilters](https://github.com/tylertreat/BoomFilters) - probabilistic data structures for processing continuous, unbounded streams -* [cuckoofilter](https://github.com/seiflotfy/cuckoofilter) - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go. -* [encoding](https://github.com/surge/encoding) - Integer Compression Libraries for Go. -* [go-datastructures](https://github.com/Workiva/go-datastructures) - a collection of useful, performant, and thread-safe data structures -* [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. -* [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go. -* [mafsa](https://github.com/smartystreets/mafsa) - MA-FSA implementation with Minimal Perfect Hashing -* [skiplist](https://github.com/gansidui/skiplist) - Skiplist implementation in Go -* [trie](https://github.com/derekparker/trie) - Trie implementation in Go -* [ttlcache](https://github.com/diegobernardes/ttlcache) - An in-memory LRU string-interface{} map with expiration for golang -* [willf/bloom](https://github.com/willf/bloom) - Go package implementing Bloom filters. - -## Database - -*Databases implemented in Go.* - -* [bolt](https://github.com/boltdb/bolt) - A low-level key/value database for Go. -* [cache2go](https://github.com/muesli/cache2go) - An in-memory key:value cache which supports automatic invalidation based on timeouts. -* [couchcache](https://github.com/codingsince1985/couchcache) - A RESTful caching micro-service backed by Couchbase server. -* [diskv](https://github.com/peterbourgon/diskv) - A home-grown disk-backed key-value store. -* [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB. -* [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC. -* [go-cache](https://github.com/pmylund/go-cache) - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications. -* [goleveldb](https://github.com/syndtr/goleveldb) - An implementation of the [LevelDB](https://github.com/google/leveldb) key/value database in the Go. -* [groupcache](https://github.com/golang/groupcache) - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. -* [influxdb](https://github.com/influxdb/influxdb) - Scalable datastore for metrics, events, and real-time analytics -* [ledisdb](https://github.com/siddontang/ledisdb) - Ledisdb is a high performance NoSQL like Redis based on LevelDB. -* [levigo](https://github.com/jmhodges/levigo) - Levigo is a Go wrapper for LevelDB. -* [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1. -* [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang. - -*Database tools.* - -* [go-mysql](https://github.com/siddontang/go-mysql) - A go toolset to handle MySQL protocol and replication. -* [go-mysql-elasticsearch](https://github.com/siddontang/go-mysql-elasticsearch) - Sync your MySQL data into Elasticsearch automatically. -* [goose](https://bitbucket.org/liamstask/goose) - Database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts. -* [kingshard](https://github.com/flike/kingshard) - kingshard is a high performance proxy for MySQL powered by Golang. -* [myreplication](https://github.com/2tvenom/myreplication) - MySql binary log replication listener. Support statement and row based replication. -* [orchestrator](https://github.com/outbrain/orchestrator) - MySQL replication topology manager & visualizer -* [pgweb](https://github.com/sosedoff/pgweb) - A web-based PostgreSQL database browser -* [pravasan](https://github.com/pravasan/pravasan) - Simple Migration tool - currently for MySQL but planning to support soon for Postgres, SQLite, MongoDB, etc., -* [sql-migrate](https://github.com/rubenv/sql-migrate) - Database migration tool. Allows embedding migrations into the application using go-bindata. -* [vitess](https://github.com/youtube/vitess) - vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services. - -*SQL query builder, libraries for building and using SQL.* - -* [Dotsql](https://github.com/gchaincl/dotsql) - Go library that helps you keep sql files in one place and use it with ease. -* [goqu](https://github.com/doug-martin/goqu) - An idiomatic SQL builder and query library. -* [scaneo](https://github.com/variadico/scaneo) - Generate Go code to convert database rows into arbitrary structs. -* [Squirrel](https://github.com/lann/squirrel) - Go library that helps you build SQL queries. - - -## Database Drivers - -*Libraries for connecting and operating databases.* - -* Relational Databases - * [firebirdsql](https://github.com/nakagami/firebirdsql) - Firebird RDBMS SQL driver for Go - * [go-adodb](https://github.com/mattn/go-adodb) - Microsoft ActiveX Object DataBase driver for go that using database/sql. - * [go-bqstreamer](https://github.com/rounds/go-bqstreamer) - BigQuery fast and concurrent stream insert. - * [go-mssqldb](https://github.com/denisenkom/go-mssqldb) - Microsoft MSSQL driver prototype in go language. - * [go-oci8](https://github.com/mattn/go-oci8) - Oracle driver for go that using database/sql. - * [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go. - * [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that using database/sql. - * [gofreetds](https://github.com/minus5/gofreetds) Microsoft MSSQL driver. Go wrapper over [FreeTDS](http://www.freetds.org). - * [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. - -* NoSQL Databases - * [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. - * [cayley](https://github.com/google/cayley) - A graph database with support for multiple backends. - * [go-couchbase](https://github.com/couchbase/go-couchbase) - Couchbase client in Go - * [go-couchdb](https://github.com/fjl/go-couchdb) - Yet another CouchDB HTTP API wrapper for Go - * [gocb](https://github.com/couchbaselabs/gocb) - Official Couchbase Go SDK - * [gocql](http://gocql.github.io) - A Go language driver for Apache Cassandra. - * [gomemcache](https://github.com/bradfitz/gomemcache/) - memcache client library for the Go programming language. - * [gorethink](https://github.com/dancannon/gorethink) - Go language driver for RethinkDB - * [mgo](http://godoc.org/labix.org/v2/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](https://github.com/cihangir/neo4j) - Neo4j Rest API Bindings for Golang - * [Neo4j-GO](https://github.com/davemeehan/Neo4j-GO) - Neo4j REST Client in golang. - * [neoism](https://github.com/jmcvetta/neoism) - Neo4j client for Golang - * [redigo](https://github.com/garyburd/redigo) - Redigo is a Go client for the Redis database. - * [redis](https://github.com/go-redis/redis) - Redis client for Golang - * [redis](https://github.com/hoisie/redis) - A simple, powerful Redis client for Go. - -* Search and Analytic Databases - * [bleve](https://github.com/blevesearch/bleve) - A modern text indexing library for go. - * [elastic](https://github.com/olivere/elastic) - Elasticsearch client for Google Go. - * [elastigo](https://github.com/mattbaird/elastigo) - A Elasticsearch client library. - * [goes](https://github.com/belogik/goes) - A library to interact with Elasticsearch. - -## Date & Time - -*Libraries for working with dates and times.* - -* [now](https://github.com/jinzhu/now) - Now is a time toolkit for golang. -* [timeutil](https://github.com/leekchan/timeutil) - Useful extensions (Timedelta, Strftime, ...) to the golang's time package. - - -## Distributed Systems - -*Packages that help with building Distributed Systems.* - -* [flowgraph](https://github.com/vectaport/flowgraph) - MPI-style ready-send coordination layer. -* [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. -* [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. -* [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC. -* [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. -* [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. - * [dht](https://godoc.org/github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. - -## Email - -*Libraries that implement email creation and sending* - -* [douceur](https://github.com/aymerick/douceur) - CSS inliner for your HTML emails. -* [email](https://github.com/jordan-wright/email) - A robust and flexible email library for Go. -* [go-dkim](https://github.com/toorop/go-dkim) - A DKIM library, to sign & verify email. -* [Gomail](https://github.com/go-gomail/gomail/) - Gomail is a very simple and powerful package to send emails. -* [MailHog](https://github.com/mailhog/MailHog) - Email and SMTP testing with web and API interface -* [SendGrid](https://github.com/sendgrid/sendgrid-go) - SendGrid's Go library for sending email -* [smtp](https://github.com/mailhog/smtp) - SMTP server protocol state machine - - - -## Embeddable Scripting Languages - -*Embedding other languages inside your go code* - -* [agora](https://github.com/PuerkitoBio/agora) - Dynamically typed, embeddable programming language in Go -* [anko](https://github.com/mattn/anko) - Scriptable interpreter written in Go -* [gisp](https://github.com/jcla1/gisp) - Simple LISP in Go -* [go-duktape](https://github.com/olebedev/go-duktape) - Duktape JavaScript engine bindings for Go -* [go-lua](https://github.com/Shopify/go-lua) - A port of the Lua 5.2 VM to pure Go -* [go-python](https://github.com/sbinet/go-python) - naive go bindings to the CPython C-API -* [golua](https://github.com/aarzilli/golua) - Go bindings for Lua C API -* [gopher-lua](https://github.com/yuin/gopher-lua) - a Lua 5.1 VM and compiler written in Go -* [otto](https://github.com/robertkrimen/otto) - A JavaScript interpreter written in Go -* [purl](https://github.com/ian-kent/purl) - Perl 5.18.2 embedded in Go - - -## Financial - -*Packages for accounting and finance* - -* [accounting](https://github.com/leekchan/accounting) - money and currency formatting for golang -* [decimal](https://github.com/shopspring/decimal) - Arbitrary-precision fixed-point decimal numbers - - -## Forms - -*Libraries for working with forms.* - -* [bind](https://github.com/robfig/bind) - Bind form data to any Go values -* [binding](https://github.com/mholt/binding) - Binds form and JSON data from net/http Request to struct. -* [formam](https://github.com/monoculum/formam) - decode form's values into a struct. -* [forms](https://github.com/albrow/forms) - A framework-agnostic library for parsing and validating form/JSON data which supports multipart forms and files. -* [nosurf](https://github.com/justinas/nosurf) - A CSRF protection middleware for Go. - - -## Game Development - -*Awesome game development libraries.* - -* [GarageEngine](https://github.com/vova616/GarageEngine) - 2d game engine written in Go working on OpenGL. -* [glop](https://github.com/runningwild/glop) - Glop (Game Library Of Power) is a fairly simple cross-platform game library. -* [go-astar](https://github.com/beefsack/go-astar) - Go implementation of the A* path finding algorithm -* [go-collada](https://github.com/GlenKelley/go-collada) - Go package for working with the Collada file format. -* [go-sdl2](https://github.com/veandco/go-sdl2) - Go bindings for the [Simple DirectMedia Layer](https://www.libsdl.org/). -* [go3d](https://github.com/ungerik/go3d) - A performance oriented 2D/3D math package for Go -* [gonet](https://github.com/xtaci/gonet) - A game server skeleton implemented with golang -* [Leaf](https://github.com/name5566/leaf) - A lightweight game server framework - - -## Generation & Generics - -*Tools to enhance the language with features like generics via code generation* - -* [gen](https://github.com/clipperhouse/gen) - Code generation tool for ‘generics’-like functionality. -* [go-linq](https://github.com/ahmetalpbalkan/go-linq) - .NET LINQ-like query methods for Go. -* [pkgreflect](https://github.com/ungerik/pkgreflect) - A Go preprocessor for package scoped reflection. - - -## GUI - -*Libraries for building GUI Applications* - -* [go-gtk](http://mattn.github.io/go-gtk/) - Go bindings for GTK -* [go-qml](https://github.com/go-qml/qml) - QML support for the Go language -* [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go. -* [gotk3](https://github.com/conformal/gotk3) - Go bindings for GTK3. -* [gxui](https://github.com/google/gxui) - A Go cross platform UI library. -* [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. -* [walk](https://github.com/lxn/walk) - Windows application library kit for Go. - -## Hardware - -*Libraries, tools, and tutorials for interacting with hardware.* - -See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive list. - -## Images - -*Libraries for manipulating images.* - -* [bimg](https://github.com/h2non/bimg) - Small package for fast and efficient image processing using libvips -* [geopattern](https://github.com/pravj/geopattern) - Create beautiful generative image patterns from a string. -* [gift](https://github.com/disintegration/gift) - Package of image processing filters. -* [go-cairo](https://github.com/ungerik/go-cairo) - Go binding for the cairo graphics library. -* [go-gd](https://github.com/bolknote/go-gd) - Go binding for GD library -* [go-nude](https://github.com/koyachi/go-nude) - Nudity detection with Go. -* [go-opencv](https://github.com/lazywei/go-opencv) - Go bindings for OpenCV. -* [go-webcolors](https://github.com/jyotiska/go-webcolors) - Port of webcolors library from Python to Go. -* [imagick](https://github.com/gographics/imagick) - Go binding to ImageMagick's MagickWand C API. -* [imaginary](https://github.com/h2non/imaginary) - Fast and simple HTTP microservice for image resizing -* [imaging](https://github.com/disintegration/imaging) - Simple Go image processing package. -* [img](https://github.com/hawx/img) - A selection of image manipulation tools. -* [picfit](https://github.com/thoas/picfit) - An image resizing server written in Go -* [resize](https://github.com/nfnt/resize) - Image resizing for the Go with common interpolation methods. -* [rez](https://github.com/bamiaux/rez) - Image resizing in pure Go and SIMD. -* [smartcrop](https://github.com/muesli/smartcrop) - Finds good crops for arbitrary images and crop sizes -* [svgo](https://github.com/ajstarks/svgo) - Go Language Library for SVG generation. -* [tga](https://github.com/ftrvxmtrx/tga) - Package tga is a TARGA image format decoder/encoder. - -## Logging - -*Libraries for generating and working with log files.* - -* [glog](https://github.com/golang/glog) - Leveled execution logs for Go. -* [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Cosole, Simple Console, File or Elasticsearch. -* [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers. -* [go-log](https://github.com/ian-kent/go-log) - A log4j implementation in Go. -* [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. -* [log-voyage](https://github.com/firstrow/logvoyage) - Full-featured logging saas written in golang. -* [logex](https://github.com/go-logex/logex) - An golang log lib, supports tracking and level, wrap by standard log lib -* [logrus](https://github.com/Sirupsen/logrus) - a structured logger for Go. -* [logrusly](https://github.com/sebest/logrusly) - [logrus](https://github.com/sirupsen/logrus) plug-in to send errors to a [Loggly](https://www.loggly.com/). -* [logutils](https://github.com/hashicorp/logutils) - Utilities for slightly better logging in Go (Golang) extending the standard logger. -* [logxi](https://github.com/mgutz/logxi) - A 12-factor app logger that is fast and makes you happy. -* [lumberjack](https://github.com/natefinch/lumberjack) - Simple rolling logger, implements io.WriteCloser. -* [mlog](https://github.com/jbrodriguez/mlog) - A simple logging module for go, with 5 levels, an optional rotating logfile feature and stdout/stderr output. -* [seelog](https://github.com/cihub/seelog) - logging functionality with flexible dispatching, filtering, and formatting. -* [stdlog](https://github.com/alexcesaro/log) - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs. -* [tail](https://github.com/ActiveState/tail) - A Go package striving to emulate the features of the BSD tail program. - -## Machine Learning - -*Libraries for Machine Learning.* - -* [bayesian](https://github.com/jbrukh/bayesian) - Naive Bayesian Classification for Golang. -* [CloudForest](https://github.com/ryanbressler/CloudForest) - Fast, flexible, multi-threaded ensembles of decision trees for machine learning in pure Go. -* [go-fann](https://github.com/white-pony/go-fann) - Go bindings for Fast Artificial Neural Networks(FANN) library. -* [go-galib](https://github.com/thoj/go-galib) - Genetic Algorithms library written in Go / golang -* [go-pr](https://github.com/daviddengcn/go-pr) - Pattern recognition package in Go lang. -* [gobrain](https://github.com/goml/gobrain) - Neural Networks written in go -* [godist](https://github.com/e-dard/godist) - Various probability distributions, and associated methods. -* [GoLearn](https://github.com/sjwhitworth/golearn) - General Machine Learning library for Go. -* [golinear](https://github.com/danieldk/golinear) - liblinear bindings for Go -* [goml](https://github.com/cdipaolo/goml) - On-line Machine Learning in Go -* [goRecommend](https://github.com/timkaye11/goRecommend) - Recommendation Algorithms library written in Go. -* [libsvm](https://github.com/datastream/libsvm) - libsvm golang version derived work based on LIBSVM 3.14. -* [mlgo](https://code.google.com/p/mlgo/) - This project aims to provide minimalistic machine learning algorithms in Go. -* [neural-go](https://github.com/schuyler/neural-go) - A multilayer perceptron network implemented in Go, with training via backpropagation. -* [probab](https://code.google.com/p/probab/) - Probability distribution functions. Bayesian inference. Written in pure Go. -* [regommend](https://github.com/muesli/regommend) - Recommendation & collaborative filtering engine -* [shield](https://github.com/eaigner/shield) - Bayesian text classifier with flexible tokenizers and storage backends for Go - - -## Messaging - -*Libraries that implement messaging systems* - -* [dbus](https://github.com/godbus/dbus) - Native Go bindings for D-Bus. -* [EventBus](https://github.com/asaskevich/EventBus) - The lightweight event bus with async compatibility. -* [go-notify](https://github.com/TheCreeper/go-notify) - Native implementation of the freedesktop notification spec. -* [go-nsq](https://github.com/bitly/go-nsq) - the official Go package for NSQ -* [gopush-cluster](https://github.com/Terry-Mao/gopush-cluster) - gopush-cluster is a go push server cluster. -* [machinery](https://github.com/RichardKnop/machinery) - An asynchronous task queue/job queue based on distributed message passing. -* [NATS](https://github.com/apcera/nats) - A lightweight and highly performant publish-subscribe and distributed queueing messaging system. -* [oplog](https://github.com/dailymotion/oplog) - A generic oplog/replication system for REST APIs -* [pubsub](https://github.com/tuxychandru/pubsub) - A simple pubsub package for go. -* [sarama](https://github.com/Shopify/sarama) - A Go library for Apache Kafka. -* [Uniqush-Push](https://github.com/uniqush/uniqush-push) - A redis backed unified push service for server-side notifications to mobile devices. -* [zmq4](https://github.com/pebbe/zmq4) - A Go interface to ZeroMQ version 4. Also available for [version 3](https://github.com/pebbe/zmq3) and [version 2](https://github.com/pebbe/zmq2). - - -## Miscellaneous - -*These libraries were placed here because none of the other categories seemed to fit* - -* [autoflags](https://github.com/artyom/autoflags) - Go package to automatically define command line flags from struct fields. -* [browscap_go](https://github.com/fromYukki/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). -* [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser -* [go-multierror](https://github.com/hashicorp/go-multierror) - A Go (golang) package for representing a list of errors as a single error. -* [gopsutil](https://github.com/shirou/gopsutil) - A cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc). -* [jobs](https://github.com/albrow/jobs) - A persistent and flexible background jobs library. -* [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. -* [xkg](https://github.com/go-xkg/xkg) - X Keyboard Grabber -* [xstrings](https://github.com/huandu/xstrings) - A collection of useful string functions ported from other languages. - -## Natural Language Processing - -*Libraries for working with human languages.* - -* [go-eco](https://code.google.com/p/go-eco/) - Similarity, dissimilarity and distance matrices; diversity, equitability and inequality measures; species richness estimators; coenocline models. -* [go-nlp](https://github.com/nuance/go-nlp) - Utilities for working with discrete probability distributions and other tools useful for doing NLP work. -* [go-stem](https://github.com/agonopol/go-stem) - Implementation of the porter stemming algorithm. -* [golibstemmer](https://github.com/rjohnsondev/golibstemmer) - Go bindings for the snowball libstemmer library including porter 2 -* [gounidecode](https://github.com/fiam/gounidecode) - Unicode transliterator (also known as unidecode) for Go -* [icu](https://github.com/goodsign/icu) - Cgo binding for icu4c C library detection and conversion functions. Guaranteed compatibility with version 50.1. -* [libtextcat](https://github.com/goodsign/libtextcat) - Cgo binding for libtextcat C library. Guaranteed compatibility with version 2.2. -* [MMSEGO](https://github.com/awsong/MMSEGO) - This is a GO implementation of [MMSEG](http://technology.chtsai.org/mmseg/) which a Chinese word splitting algorithm. -* [paicehusk](https://github.com/Rookii/paicehusk) - Golang implementation of the Paice/Husk Stemming Algorithm -* [porter](https://github.com/a2800276/porter) - This is a fairly straighforward port of Martin Porter's C implementation of the Porter stemming algorithm. -* [porter2](https://github.com/surge/porter2) - Really fast Porter 2 stemmer. -* [segment](https://github.com/blevesearch/segment) - A Go library for performing Unicode Text Segmentation as described in [Unicode Standard Annex #29](http://www.unicode.org/reports/tr29/) -* [snowball](https://github.com/goodsign/snowball) - Snowball stemmer port (cgo wrapper) for Go. Provides word stem extraction functionality [Snowball native](http://snowball.tartarus.org/). -* [stemmer](https://github.com/dchest/stemmer) - Stemmer packages for Go programming language. Includes English and German stemmers. -* [textcat](https://github.com/pebbe/textcat) - A Go package for n-gram based text categorization, with support for utf-8 and raw text - -## Networking - -*Libraries for working with various layers of the network* - -* [arp](https://github.com/mdlayher/arp) - Package arp implements the ARP protocol, as described in RFC 826. -* [buffstreams](https://github.com/stabbycutyou/buffstreams) - Streaming protocolbuffer data over TCP made easy -* [canopus](https://github.com/zubairhamed/canopus) - CoAP Client/Server implementation (RFC 7252) -* [dhcp6](https://github.com/mdlayher/dhcp6) - Package dhcp6 implements a DHCPv6 server, as described in RFC 3315. -* [dns](https://github.com/miekg/dns) - Go library for working with DNS -* [ethernet](https://github.com/mdlayher/ethernet) - Package ethernet implements marshaling and unmarshaling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags. -* [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](http://tools.ietf.org/html/rfc959). -* [go-stun](https://github.com/ccding/go-stun) - A go implementation of the STUN client (RFC 3489 and RFC 5389). -* [gopacket](https://github.com/google/gopacket) - A Go library for packet processing with libpcap bindings -* [gopcap](https://github.com/akrennmair/gopcap) - A Go wrapper for libpcap -* [gosnmp](https://github.com/soniah/gosnmp) - Native Go library for performing SNMP actions -* [gotcp](https://github.com/gansidui/gotcp) - A Go package for quickly writing tcp applications -* [graval](https://github.com/koofr/graval) - An experimental FTP server framework. -* [linkio](https://github.com/ian-kent/linkio) - Network link speed simulation for Reader/Writer interfaces -* [mdns](https://github.com/hashicorp/mdns) - Simple mDNS (Multicast DNS) client/server library in Golang -* [portproxy](https://github.com/aybabtme/portproxy) - Simple TCP proxy which adds CORS support to API's which don't support it. -* [raw](https://github.com/mdlayher/raw) - Package raw enables reading and writing data at the device driver level for a network interface. -* [sftp](https://github.com/pkg/sftp) - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. -* [tcp_server](https://github.com/firstrow/tcp_server) - A Go library for building tcp servers faster. -* [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. - -## OpenGL - -*Libraries for using OpenGL in Go.* - -* [gl](https://github.com/go-gl/gl) - Go bindings for OpenGL (generated via glow). -* [glfw](https://github.com/go-gl/glfw) - Go bindings for GLFW 3. -* [goxjs/gl](https://github.com/goxjs/gl) - Go cross-platform OpenGL bindings (OS X, Linux, Windows, browsers, iOS, Android). -* [goxjs/glfw](https://github.com/goxjs/glfw) - Go cross-platform glfw library for creating an OpenGL context and receiving events. -* [mathgl](https://github.com/go-gl/mathgl) - Pure Go math package specialized for 3D math, with inspiration from GLM. - - -## ORM - -*Libraries that implement Object-Relational Mapping or datamapping techniques.* - -* [beego orm](https://github.com/astaxie/beego/tree/master/orm) - A powerful orm framework for go. -* [go-store](https://github.com/gosuri/go-store) - A simple and fast Redis backed key-value store library for Go. -* [gomodel](https://github.com/cosiner/gomodel) - A lightweight, fast, orm-like library helps interactive with database. -* [GORM](https://github.com/jinzhu/gorm) - The fantastic ORM library for Golang, aims to be developer friendly. -* [gorp](https://github.com/go-gorp/gorp) - Go Relational Persistence, ORM-ish library for Go. -* [hood](https://github.com/eaigner/hood) - Database agnostic ORM for Go. -* [QBS](https://github.com/coocood/qbs) - Stands for Query By Struct. A Go ORM. -* [upper.io/db](https://github.com/upper/db) - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers. -* [Xorm](https://github.com/go-xorm/xorm) - Simple and powerful ORM for Go. -* [Zoom](https://github.com/albrow/zoom) - A blazing-fast datastore and querying engine built on Redis. - - -## Package Management - -*Libraries for package and dependency management.* - -* [gigo](https://github.com/LyricalSecurity/gigo) - PIP-like dependency tool for golang, with support for private repositories and hashes. -* [godep](https://github.com/tools/godep) - dependency tool for go, godep helps build packages reproducibly by fixing their dependencies. -* [gom](https://github.com/mattn/gom) - Go Manager - bundle for go. -* [goop](https://github.com/nitrous-io/goop) - A simple dependency manager for Go (golang), inspired by Bundler. -* [gopm](https://github.com/gpmgo/gopm) - Go Package Manager -* [gpm](https://github.com/pote/gpm) - Barebones dependency manager for Go. -* [johnny-deps](https://github.com/VividCortex/johnny-deps) - Minimal dependency version using Git -* [nut](https://github.com/jingweno/nut) - Vendor Go dependencies -* [VenGO](https://github.com/DamnWidget/VenGO) - create and manage exportable isolated go virtual environments - - -## Resource Embedding - -* [go-bindata](https://github.com/jteeuwen/go-bindata) - Package that converts any file into managable Go source code. -* [go-resources](https://github.com/omeid/go-resources) - Unfancy resources embedding with Go. -* [go.rice](https://github.com/GeertJohan/go.rice) - go.rice is a Go package that makes working with resources such as html,js,css,images and templates very easy. -* [vfsgen](https://github.com/shurcooL/vfsgen) - Generates a vfsdata.go file that statically implements the given virtual filesystem. - - -## Science and Data Analysis - -*Libraries for scientific computing and data analyzing.* - -* [blas](https://github.com/ziutek/blas) - Implementation of BLAS (Basic Linear Algebra Subprograms) -* [chart](https://github.com/vdobler/chart) - Simple Chart Plotting library for Go. Supports many graphs types. -* [evaler](https://github.com/soniah/evaler) - A simple floating point arithmetic expression evaluator -* [ewma](https://github.com/VividCortex/ewma) - Exponentially-weighted moving averages -* [geom](https://github.com/skelterjohn/geom) - 2D geometry for golang -* [go-fn](https://code.google.com/p/go-fn/) - Mathematical functions written in Go language, that are not covered by math pkg -* [go-gt](https://code.google.com/p/go-gt/) - Graph theory algorithms written in "Go" language -* [go.matrix](https://github.com/skelterjohn/go.matrix) - linear algebra for go (has been stalled) -* [gocomplex](https://code.google.com/p/gocomplex/) - A complex number library for the Go programming language. -* [gofrac](https://github.com/anschelsc/gofrac) - A (goinstallable) fractions library for go with support for basic arithmetic. -* [gohistogram](https://github.com/VividCortex/gohistogram) - Approximate histograms for data streams -* [gonum/mat64](https://github.com/gonum/matrix) - The general purpose package for matrix computation. Package mat64 provides basic linear algebra operations for float64 matrices. -* [gonum/plot](https://github.com/gonum/plot) - gonum/plot provides an API for building and drawing plots in Go. -* [goraph](https://github.com/gyuho/goraph) - A pure Go graph theory library(data structure, algorith visualization) -* [gostat](https://code.google.com/p/gostat/) - A statistics library for the go language -* [mudlark-go](https://code.google.com/p/mudlark-go-pkgs/) - A collection of packages providing (hopefully) useful code for use in software using Google's Go programming language. -* [pagerank](https://github.com/alixaxel/pagerank) - Weighted PageRank algorithm implemented in Go -* [streamtools](https://github.com/nytlabs/streamtools) - general purpose, graphical tool for dealing with streams of data. -* [vectormath](https://github.com/spate/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) - - -## Security - -*Libraries that are used to help make your application more secure.* - -* [BadActor](https://github.com/jaredfolkins/badactor) - An in-memory, application-driven jailer built in the spirit of fail2ban -* [go-yara](https://github.com/hillu/go-yara) - Go Bindings for [YARA](https://github.com/plusvic/yara), the "pattern matching swiss knife for malware researchers (and everyone else)" - -## Serialization - -*Libraries and tools for binary serialization* - -* [cbor](https://github.com/2tvenom/cbor) - Golang library for working with cbor binary format -* [go-capnproto](https://github.com/glycerine/go-capnproto) - Cap'n Proto library and parser for go - * [bambam](https://github.com/glycerine/bambam) - generator for Cap'n Proto schemas from go. -* [gogoprotobuf](https://github.com/gogo/protobuf) - Protocol Buffers for Go with Gadgets -* [goprotobuf](https://github.com/golang/protobuf) - Go support, in the form of a library and protocol compiler plugin, for Google's protocol buffers. -* [mapstructure](https://github.com/mitchellh/mapstructure) - Go library for decoding generic map values into native Go structures. -* [php_session_decoder](https://github.com/yvasiyarov/php_session_decoder) - GoLang library for working with PHP session format and PHP Serialize/Unserialize functions -* [structomap](https://github.com/tuvistavie/structomap) - Library to easily and dynamically generate maps from static structures. - - -## Server Applications - -* [algernon](https://github.com/xyproto/algernon) - HTTP/2 web server with built-in support for Lua, Markdown, GCSS and Amber. -* [Caddy](https://github.com/mholt/caddy) - Caddy is an alternative, HTTP/2 web server that's easy to configure and use. -* [etcd](https://github.com/coreos/etcd) - A highly-available key value store for shared configuration and service discovery. -* [nsq](http://nsq.io/) - A realtime distributed messaging platform -* [yakvs](https://github.com/sci4me/yakvs) - A small, networked, in-memory key-value store. - - -## Template Engines - -*Libraries and tools for templating and lexing.* - -* [ace](https://github.com/yosssi/ace) - Ace is an HTML template engine for Go, inspired by Slim and Jade. Ace is a refinement of Gold. -* [amber](https://github.com/eknkc/amber) - Amber is an elegant templating engine for Go Programming Language It is inspired from HAML and Jade. -* [damsel](https://github.com/dskinner/damsel) - Markup language featuring html outlining via css-selectors, extensible via pkg html/template and others. -* [ego](https://github.com/benbjohnson/ego) - A lightweight templating language that lets you write templates in Go. Templates are translated into Go and compiled. -* [kasia.go](https://github.com/ziutek/kasia.go) - Templating system for HTML and other text documents - go implementation. -* [mustache](https://github.com/hoisie/mustache) - A Go implementation of the Mustache template language. -* [pongo2](https://github.com/flosch/pongo2) - A Django-like template-engine for Go. -* [raymond](https://github.com/aymerick/raymond) - A complete handlebars implementation in Go. -* [Razor](https://github.com/sipin/gorazor) - Razor view engine for Golang. -* [Soy](https://github.com/robfig/soy) - Closure templates (aka Soy templates) for Go, following the [official spec](https://developers.google.com/closure/templates/) - - -## Testing - -*Libraries for testing codebases and generating test data.* - -* Testing Frameworks - * [assert](https://github.com/bluesuncorp/assert) - Basic Assertion Library used along side native go testing, with building blocks for custom assertions - * [assert](https://github.com/bmizerany/assert) - Asserts to Go testing - * [bro](https://github.com/marioidival/bro) - Watch files in directory and run tests for them - * [ginkgo](http://onsi.github.io/ginkgo/) - BDD Testing Framework for Go - * [go-mutesting](https://github.com/zimmski/go-mutesting) - Mutation testing for Go source code - * [goblin](https://github.com/franela/goblin) - Mocha like testing framework fo Go - * [gocheck](http://labix.org/gocheck) - A more advanced testing framework alternative to gotest. - * [GoConvey](https://github.com/smartystreets/goconvey/) - BDD-style framework with web UI and live reload - * [godog](https://github.com/DATA-DOG/godog) - Cucumber or Behat like BDD framework for Go. - * [GoSpec](https://github.com/orfjackal/gospec) - BDD-style testing framework for the Go programming language. - * [gospecify](https://github.com/stesla/gospecify) - This provides a BDD syntax for testing your Go code. It should be familiar to anybody who has used libraries such as rspec. - * [Hamcrest](https://github.com/rdrdr/hamcrest) - fluent framework for declarative Matcher objects that, when applied to input values, produce self-describing results. - * [restit](https://github.com/yookoala/restit) - A Go micro framework to help writing RESTful API integration test. - * [Testify](https://github.com/stretchr/testify) - A sacred extension to the standard go testing package. - -* Mock - * [counterfeiter](https://github.com/maxbrunsfeld/counterfeiter) - Tool for generating self-contained mock objects - * [go-sqlmock](https://github.com/DATA-DOG/go-sqlmock) - Mock SQL driver for testing database interactions - * [go-txdb](https://github.com/DATA-DOG/go-txdb) - Single transaction based database driver mainly for testing purposes. - * [gomock](https://github.com/golang/mock) - Mocking framework for the Go programming language. - * [mockhttp](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter - -* Fuzzing and delta-debugging/reducing/shrinking - * [go-fuzz](https://github.com/dvyukov/go-fuzz) - A randomized testing system - * [gofuzz](https://github.com/google/gofuzz) - A library for populating go objects with random values - * [gogenerate](https://github.com/arschles/gogenerate) - A Scalacheck-like library for Go - * [Tavor](https://github.com/zimmski/tavor) - A generic fuzzing and delta-debugging framework - -## Text Processing - -*Libraries for parsing and manipulating texts.* - -* Specific Formats - * [blackfriday](https://github.com/russross/blackfriday) - Markdown processor in Go - * [github_flavored_markdown](https://godoc.org/github.com/shurcooL/github_flavored_markdown) - GitHub Flavored Markdown renderer with fenced code block highlighting, clickable header anchor links. - * [bluemonday](https://github.com/microcosm-cc/bluemonday) - HTML Sanitizer - * [enca](https://github.com/endeveit/enca) - Minimal cgo bindings for [libenca](http://cihar.com/software/enca/). - * [genex](https://github.com/alixaxel/genex) - Count and expand Regular Expressions into all matching Strings - * [go-humanize](https://github.com/dustin/go-humanize) - Formatters for time, numbers, and memory size to human readable format. - * [go-nmea](https://github.com/adrianmo/go-nmea) - NMEA parser library for the Go language. - * [go-pkg-rss](https://github.com/jteeuwen/go-pkg-rss) - This package reads RSS and Atom feeds and provides a caching mechanism that adheres to the feed specs. - * [go-pkg-xmlx](https://github.com/jteeuwen/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. - * [go-runewidth](https://github.com/mattn/go-runewidth) - Functions to get fixed width of the character or string. - * [gographviz](https://github.com/awalterschulze/gographviz) - Parses the Graphviz DOT language. - * [gommon/gytes](https://github.com/labstack/gommon/tree/master/gytes) - Format bytes to string. - * [gonameparts](https://github.com/polera/gonameparts) - Parses human names into individual name parts - * [GoQuery](https://github.com/PuerkitoBio/goquery) - GoQuery brings a syntax and a set of features similar to jQuery to the Go language. - * [goregen](https://github.com/zach-klippenstein/goregen) - A library for generating random strings from regular expressions. - * [guesslanguage](https://github.com/endeveit/guesslanguage) - Functions to determine the natural language of a unicode text. - * [mxj](https://github.com/clbanning/mxj) - Encode / decode XML as JSON or map[string]interface{}; extract values with dot-notation paths and wildcards. Replaces x2j and j2x packages. - * [slug](https://github.com/gosimple/slug) - URL-friendly slugify with multiple languages support. - * [Slugify](https://github.com/avelino/slugify) - A Go slugify application that handles string. - * [toml](https://github.com/BurntSushi/toml) - TOML configuration format (encoder/decoder with reflection). -* Utility - * [gotabulate](https://github.com/bndr/gotabulate) - Easily pretty-print your tabular data with Go. - * [xurls](https://github.com/mvdan/xurls) - Extract urls from text - - -## Third-party APIs - -*Libraries for accessing third party APIs.* - -* [anaconda](https://github.com/ChimeraCoder/anaconda) - A Go client library for the Twitter 1.1 API -* [aws-sdk-go](https://github.com/aws/aws-sdk-go) - The official AWS SDK for the Go programming language. Caution: The SDK is currently in the process of being developed, and not everything may be working fully yet. -* [brewerydb](https://github.com/naegelejd/brewerydb) - Go library for accessing the BreweryDB API. -* [facebook](https://github.com/huandu/facebook) - Go Library that supports the Facebook Graph API -* [gads](https://github.com/emiddleton/gads) - Google Adwords Unofficial API -* [gami](https://github.com/bit4bit/gami) - Go library for Asterisk Manager Interface. -* [geo-golang](https://github.com/codingsince1985/geo-golang) - Go Library to access [Google Maps](https://developers.google.com/maps/documentation/geocoding/), [MapQuest](http://open.mapquestapi.com/geocoding/), [Nominatim](http://open.mapquestapi.com/nominatim/), [OpenCage](http://geocoder.opencagedata.com/api.html), [HERE](https://developer.here.com/rest-apis/documentation/geocoder) and [Bing](https://msdn.microsoft.com/en-us/library/ff701715.aspx) geocoding / reverse geocoding APIs. -* [github](https://github.com/google/go-github) - Go library for accessing the GitHub API. -* [go-marathon](https://github.com/gambol99/go-marathon) - A Go library for interacting with Mesosphere's Marathon PAAS -* [goamz](https://github.com/mitchellh/goamz) - Popular fork of [goamz](https://launchpad.net/goamz) which adds some missing API calls to certain packages. -* [GoMusicBrainz](https://github.com/michiwend/gomusicbrainz) - a Go MusicBrainz WS2 client library -* [google](https://github.com/google/google-api-go-client) - Auto-generated Google APIs for Go -* [google-analytics](https://github.com/chonthu/go-google-analytics) - A simple wrapper for easy google analytics reporting -* [google-cloud](https://github.com/GoogleCloudPlatform/gcloud-golang) - Google Cloud APIs Go Client Library -* [gostorm](https://github.com/jsgilmore/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. -* [hipchat](https://github.com/andybons/hipchat) - This project implements a golang client library for the Hipchat API. -* [hipchat (xmpp)](https://github.com/daneharrigan/hipchat) - A golang package to communicate with HipChat over XMPP. -* [mixpanel](https://github.com/dukex/mixpanel) - Mixpanel is a library for tracking events and sending Mixpanel profile updates to Mixpanel from your go applications. -* [pushover](https://github.com/gregdel/pushover) - Go wrapper for the Pushover API. -* [rrdaclient](https://github.com/Omie/rrdaclient) - Go Library to access statdns.com API, which is in turn RRDA API. DNS Queries over HTTP. -* [shopify](https://github.com/rapito/go-shopify) - Go Library to make CRUD request to the Shopify API. -* [smite](https://github.com/sergiotapia/smitego) - Go package to wraps access to the Smite game API. -* [snapchat](https://github.com/jamieomatthews/gosnap) - Go wrapper for the snapchat API -* [spotify](https://github.com/rapito/go-spotify) - Go Library to access Spotify WEB API. -* [steam](https://github.com/sostronk/go-steam) - Go Library to interact with Steam game servers. -* [stripe](https://github.com/stripe/stripe-go) - Go client for the Stripe API -* [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - A simple golang package to communicate with [themoviedb.org](https://themoviedb.org) -* [translate](https://github.com/poorny/translate) - Go online translation package -* [tumblr](https://github.com/mattcunningham/gumblr) - Go wrapper for the Tumblr v2 API. - -## Utilities - -*General utilities and tools to make your life easier.* - -* [coop](https://github.com/rakyll/coop) - Cheat sheet for some of the common concurrent flows in Go. -* [delve](https://github.com/derekparker/delve) - Go debugger. -* [fastlz](https://github.com/fromYukki/fastlz) - Wrap over [FastLz](http://fastlz.org/) (free, open-source, portable real-time compression library) for GoLang. -* [go-cron](https://github.com/rk/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. -* [go-debug](https://github.com/tj/go-debug) - Conditional debug logging for Golang libraries & applications -* [go-dry](https://github.com/ungerik/go-dry) - DRY (don't repeat yourself) package for Go. -* [go-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities. -* [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. -* [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons -* [godotenv](https://github.com/joho/godotenv) - A Go port of Ruby's dotenv library (Loads environment variables from `.env`.) -* [godropbox](https://github.com/dropbox/godropbox) - Common libraries for writing Go services/applications from Dropbox. -* [gohper](https://github.com/cosiner/gohper) - Various tools/modules help for development. -* [golarm](https://github.com/msempere/golarm) - Fire alarms with system events. -* [gopencils](https://github.com/bndr/gopencils) - Small and simple package to easily consume REST APIs. -* [goplaceholder](https://github.com/michiwend/goplaceholder) - a small golang lib to generate placeholder images -* [goreq](https://github.com/franela/goreq) - Minimal and simple request library for Go language. -* [gorequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features for Go. -* [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go -* [hystrix-go](https://github.com/afex/hystrix-go) - Imprements Hystrix patterns of programmer-defined fallbacks aka circuit breaker. -* [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. -* [jsongo](https://github.com/ricardolonga/jsongo) - Fluent API to make it easier to create Json objects. -* [lrserver](https://github.com/jaschaephraim/lrserver) - LiveReload server for Go -* [mp](https://github.com/sanbornm/mp) - A simple cli email parser. It currently takes stdin and outputs JSON. -* [multitick](https://github.com/VividCortex/multitick) - Multiplexor for aligned tickers -* [netbug](https://github.com/e-dard/netbug) - Easy remote profiling of your services. -* [ngrok](https://github.com/inconshreveable/ngrok) - Introspected tunnels to localhost. -* [okrun](https://github.com/xta/okrun) - go run error steamroller -* [panicparse](https://github.com/maruel/panicparse) - Groups similar goroutines and colorizes stack dump. -* [peco](https://github.com/peco/peco) - Simplistic interactive filtering tool -* [pester](https://github.com/sethgrid/pester) - Go HTTP client calls with retries, backoff, and concurrency -* [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API -* [profile](https://github.com/davecheney/profile) - Simple profiling support package for Go -* [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. -* [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics -* [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. -* [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. -* [spinner](https://github.com/briandowns/spinner) - Go package to easily provide a terminal spinner with options. -* [sqlx](https://github.com/jmoiron/sqlx) - provides a set of extensions on top of the excellent built-in database/sql package -* [xlsx](https://github.com/tealeg/xlsx) - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs. - - -## Validation - -*Libraries for validation.* - -* [govalidator](https://github.com/asaskevich/govalidator) - Validators and sanitizers for strings, numerics, slices and structs -* [validator](https://github.com/bluesuncorp/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving - - -## Version Control - -*Libraries for version control.* - -* [gh](https://github.com/rjeczalik/gh) - Scriptable server and net/http middleware for GitHub Webhooks -* [git2go](https://github.com/libgit2/git2go) - Go bindings for libgit2. -* [go-vcs](https://github.com/sourcegraph/go-vcs) - manipulate and inspect VCS repositories in Go. -* [hgo](https://github.com/beyang/hgo) - Hgo is a collection of Go packages providing read-access to local Mercurial repositories. - - -## Video - -*Libraries for manipulating video.* - -* [aac/h264](https://github.com/nareix/codec) - Golang aac/h264 encoder and decoder. -* [gmf](https://github.com/3d0c/gmf) - Go bindings for FFmpeg av\* libraries. -* [goav](https://github.com/giorgisio/goav) - Comphrensive Go bindings for FFmpeg. -* [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer. - - -## Web Frameworks - -*Full stack web frameworks.* - -* [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. -* [Bone](https://github.com/go-zoo/bone) - Lightning Fast HTTP Multiplexer. -* [Echo](https://github.com/labstack/echo) - A fast HTTP router (zero memory allocation) and micro web framework in Go. -* [Gin](https://github.com/gin-gonic/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. -* [Glue](https://github.com/desertbit/glue) - Robust Go and Javascript Socket Library (Alternative to Socket.io) -* [go-json-rest](https://github.com/ant0ine/go-json-rest) - A quick and easy way to setup a RESTful JSON API -* [go-relax](https://github.com/codehack/go-relax) - A framework of pluggable components to build RESTful API's -* [go-rest](https://github.com/ungerik/go-rest) - A small and evil REST framework for Go -* [go-socket.io](https://github.com/googollee/go-socket.io) - socket.io library for golang, a realtime application framework. -* [Goat](https://github.com/bahlo/goat) - A minimalistic REST API server in Go -* [gocraft/web](https://github.com/gocraft/web) - A mux and middleware package in Go. -* [Goji](https://github.com/zenazn/goji) - Goji is a minimalistic web framework for Golang that's high in antioxidants. -* [Gondola](https://github.com/rainycape/gondola) - The web framework for writing faster sites, faster -* [goose](https://github.com/ian-kent/goose) - Server Sent Events in Go -* [Gorilla](https://github.com/gorilla/) - Gorilla is a web toolkit for the Go programming language. -* [httprouter](https://github.com/julienschmidt/httprouter) - A high performance router. Use this and the standard http handlers to form a very high performance web framework. -* [Macaron](https://github.com/Unknwon/macaron) - Macaron is a high productive and modular design web framework in Go. -* [mango](https://github.com/paulbellamy/mango) - Mango is a modular web-application framework for Go, inspired by Rack, and PEP333. -* [Martini](https://github.com/go-martini/martini) - Martini is a powerful package for quickly writing modular web applications/services in Golang. -* [medeina](https://github.com/imdario/medeina) - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba. -* [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API. -* [pat](https://github.com/bmizerany/pat) - Sinatra style pattern muxer for Go’s net/http library, by the author of Sinatra. -* [Resoursea](https://github.com/resoursea/api) - A REST framework for quickly writing resource based services. -* [Revel](https://github.com/revel/revel) - A high-productivity web framework for the Go language. -* [rex](https://github.com/goanywhere/rex) - Rex is a library for modular development built upon gorilla/mux, fully compatible with `net/http`. -* [sawsij](http://sawsij.com/) - lightweight, open-source web framework for building high-performance, data-driven web applications. -* [Siesta](https://github.com/VividCortex/siesta) - Composable framework to write middleware and handlers -* [tango](https://github.com/lunny/tango) - Micro & pluggable web framework for Go. -* [tigertonic](https://github.com/rcrowley/go-tigertonic) - A Go framework for building JSON web services inspired by Dropwizard -* [traffic](https://github.com/pilu/traffic) - Sinatra inspired regexp/pattern mux and web framework for Go. -* [web.go](https://github.com/hoisie/web) - A simple framework to write webapps in Go. -* [Zerver](https://github.com/cosiner/zerver) - Zerver is a expressive, modular, feature completed RESTful framework. -* [zeus](https://github.com/daryl/zeus) - A very simple and fast HTTP router for Go. - - -### Middlewares - -#### Actual middlewares - -* [CORS](https://github.com/rs/cors) - Easily add CORS capabilities to your API -* [formjson](https://github.com/rs/formjson) - Transparently handle JSON input as a standard form POST -* [Tollbooth](https://github.com/didip/tollbooth) - Rate limit HTTP request handler -* [XFF](https://github.com/sebest/xff) - Handle `X-Forwarded-For` header and friends - -#### Libraries for creating HTTP middlewares - -* [alice](https://github.com/justinas/alice) - Painless middleware chaining for Go. -* [go-wrap](https://github.com/go-on/wrap) - Small middlewares package for net/http. -* [interpose](https://github.com/carbocation/interpose) - Minimalist net/http middleware for golang -* [muxchain](https://github.com/stephens2424/muxchain) - Lightweight middleware for net/http. -* [negroni](https://github.com/codegangsta/negroni) - Idiomatic HTTP middleware for Golang. -* [render](https://github.com/unrolled/render) - Go package for easily rendering JSON, XML, and HTML template responses. -* [stats](https://github.com/thoas/stats) - A Go middleware that stores various information about your web application. - -# Tools - -Go software and plugins. - - -## Code Analysis - -* [doc](http://godoc.org/robpike.io/cmd/doc) - Go documentation tool that produces an alternative doc format. -* [dupl](https://github.com/mibk/dupl) - A tool for code clone detection. -* [errcheck](https://github.com/kisielk/errcheck) - Errcheck is a program for checking for unchecked errors in Go programs. -* [gcvis](https://github.com/davecheney/gcvis) - Visualise Go program GC trace data in real time. -* [Go Metalinter](https://github.com/alecthomas/gometalinter) - Metalinter is a tool to automatically apply all static analysis tool and report their output in normalized form. -* [goast-viewer](https://github.com/yuroyoro/goast-viewer) - Web based Golang AST visualizer. -* [GoCover.io](http://gocover.io/) - GoCover.io offers the code coverage of any golang package as a service. -* [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) - Tool to fix (add, remove) your Go imports automatically. -* [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. -* [Golint online](http://go-lint.appspot.com/) - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package. -* [gostatus](https://github.com/shurcooL/gostatus) - A command line tool, shows the status of repositories that contain Go packages. -* [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. - - -## Editor Plugins - -* [go-lang-idea-plugin](https://github.com/go-lang-plugin-org/go-lang-idea-plugin) Go plugin for IntelliJ IDEA. -* [go-plus](https://github.com/joefitzgerald/go-plus) - Go (Golang) Package For Atom That Adds Autocomplete, Formatting, Syntax Checking, Linting and Vetting -* [gocode](https://github.com/nsf/gocode) - An autocompletion daemon for the Go programming language -* [GoSublime](https://github.com/DisposaBoy/GoSublime) - A Golang plugin collection for the text editor SublimeText 2 providing code completion and other IDE-like features. -* [velour](https://github.com/velour/velour) - An IRC client for the acme editor. -* [vim-compiler-go](https://github.com/rjohnsondev/vim-compiler-go) - A Vim plugin to highlight syntax errors on save. -* [vim-go](https://github.com/fatih/vim-go) - Go development plugin for Vim. -* [Watch](https://github.com/eaburns/Watch) - Runs a command in an acme win on file changes. - -## Go Tools - -* [colorgo](https://github.com/songgao/colorgo) - A wrapper around `go` command for colorized `go build` output. - -## Software Packages - -Software written in Go. - - -### DevOps Tools - -* [aptly](https://github.com/smira/aptly) - aptly is a Debian repository management tool -* [awsenv](https://github.com/soniah/awsenv) - a small binary that loads Amazon (AWS) environment variables for a profile -* [Boom](https://github.com/rakyll/boom) - Boom is a tiny program that sends some load to a web application. -* [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). -* [EasySSH](https://github.com/hypersleep/easyssh) - Golang package for easy remote execution through SSH and SCP downloading. -* [gaudi](http://gaudi.io/) - Gaudi automates the setup of isolated and decoupled dev environments. -* [Go Metrics](https://github.com/rcrowley/go-metrics) - Go port of Coda Hale's Metrics library: https://github.com/codahale/metrics. -* [go-selfupdate](https://github.com/sanbornm/go-selfupdate) - Enable your Go applications to self update. -* [gobrew](https://github.com/cryptojuice/gobrew) - gobrew lets you easily switch between multiple versions of go. -* [godbg](https://github.com/sirnewton01/godbg) - Web-based gdb front-end application. -* [Gogs](http://gogs.io/) - A Self Hosted Git Service in the Go Programming Language. -* [gonative](https://github.com/inconshreveable/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. -* [gox](https://github.com/mitchellh/gox) - A dead simple, no frills Go cross compile tool. -* [goxc](https://github.com/laher/goxc) - build tool for Go, with a focus on cross-compiling and packaging. -* [GVM](https://github.com/moovweb/gvm) - GVM provides an interface to manage Go versions. -* [hk](https://github.com/heroku/hk) - Heroku command-line interface in Go. -* [Mora](https://github.com/emicklei/mora) - REST server for accessing MongoDB documents and meta data. -* [ostent](https://github.com/ostrost/ostent) - collects and displays system metrics and optionally relays to Graphite and/or InfluxDB -* [Packer](https://github.com/mitchellh/packer) - Packer is a tool for creating identical machine images for multiple platforms from a single source configuration. -* [Rodent](https://github.com/alouche/rodent) - Rodent helps you manage Go versions, projects and track dependencies. -* [Vegeta] (https://github.com/tsenart/vegeta) - HTTP load testing tool and library. It's over 9000! -* [webhook](https://github.com/adnanh/webhook) - Tool which allows user to create HTTP endpoints (hooks) that execute commands on the server -* [Wide](https://wide.b3log.org) - A Web-based IDE for Teams using Golang. - - -### Other Software -* [boxed](https://github.com/tejo/boxed) - Dropbox based blog engine -* [Circuit](https://github.com/gocircuit/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. -* [Comcast](https://github.com/tylertreat/Comcast) - Simulate bad network connections -* [confd](https://github.com/kelseyhightower/confd) - Manage local application configuration files using templates and data from etcd or consul. -* [Docker](http://www.docker.com/) - An open platform for distributed applications for developers and sysadmins. -* [fleet](https://github.com/coreos/fleet) - A Distributed init System. -* [Go Package Store](https://github.com/shurcooL/Go-Package-Store#go-package-store-) - An app that displays updates for the Go packages in your GOPATH. -* [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. -* [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. -* [heka](https://github.com/mozilla-services/heka) - universal tool for data processing from Mozilla. Large collection of built-in plugins. Extendable via Go and Lua plugin API. -* [hugo](http://gohugo.io/) - A Fast and Modern Static Website Engine -* [Juju](https://juju.ubuntu.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. -* [limetext](http://limetext.org/) 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. -* [naclpipe](https://github.com/unix4fun/naclpipe) - A simple NaCL EC25519 based crypto pipe tool written in Go. -* [nes](https://github.com/fogleman/nes) - A Nintendo Entertainment System (NES) emulator written in Go. -* [orange-cat](https://github.com/noraesae/orange-cat) - A Markdown previewer written in Go. -* [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. -* [plubi](https://github.com/norwack/plubi) - A Golang Plugin Based IRC Bot. -* [Postman](https://github.com/zachlatta/postman) - Command-line utility for batch-sending email. -* [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. -* [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control) -* [syncthing](http://www.syncthing.net/) - An open, decentralized file synchronization tool and protocol. -* [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. -* [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. -* [tsuru](http://www.tsuru.io/) - An extensible and open source Platform as a Service software. -* [websysd](https://github.com/ian-kent/websysd) - Web based process manager (like Marathon or Upstart) - - - - - - - -# Resources - -Where to discover new Go libraries. - - -## Benchmarks - -* [autobench](https://github.com/davecheney/autobench) - Framework to compare the performance between different Go versions. -* [go-http-routing-benchmark](https://github.com/julienschmidt/go-http-routing-benchmark) - Go HTTP request router benchmark and comparison. -* [go-type-assertion-benchmark](https://github.com/hgfischer/go-type-assertion-benchmark) - Naive performance test of two ways to do type assertion in Go. -* [go_serialization_benchmarks](https://github.com/alecthomas/go_serialization_benchmarks) - Benchmarks of Go serialization methods. -* [gocostmodel](https://github.com/PuerkitoBio/gocostmodel) - Benchmarks of common basic operations for the Go language. -* [golang-micro-benchmarks](https://github.com/amscanne/golang-micro-benchmarks) - Tiny collection of Go micro benchmarks. The intent is to compare some language features to others. -* [golang-sql-benchmark](https://github.com/tyler-smith/golang-sql-benchmark) - A collection of benchmarks for popular Go database/SQL utilities. -* [kvbench](https://github.com/jimrobinson/kvbench) - Key/Value database benchmark. -* [speedtest-resize](https://github.com/fawick/speedtest-resize) - Compare various Image resize algorithms for the Go language. - - -## Conferences - -* [dotGo](http://www.dotgo.io) - Paris, France -* [GoCon](http://gocon.connpass.com/) - Tokyo, Japan -* [GolangUK](http://www.golanguk.com/) - London, UK -* [GopherChina](http://gopherchina.org) - Shanghai, China -* [GopherCon](http://www.gophercon.com/) - Denver, USA -* [GopherCon India](http://www.gophercon.in/) - Bengaluru, India -* [GothamGo](http://gothamgo.com/) - New York City, USA - -## E-Books - -* [A Go Developer's Notebook](https://leanpub.com/GoNotebook/read) -* [An Introduction to Programming in Go](http://www.golang-book.com/) -* [Build Web Application with Golang](http://astaxie.gitbooks.io/build-web-application-with-golang/) -* [Building Web Apps With Go](http://codegangsta.gitbooks.io/building-web-apps-with-go/) -* [Go Bootcamp](http://golangbootcamp.com) -* [GoBooks](https://github.com/dariubs/GoBooks) - A curated list of Go books -* [Learning Go](http://www.miek.nl/downloads/Go/Learning-Go-latest.pdf) -* [Network Programming With Go](http://jan.newmarch.name/go/) - - -## Twitter - -* [@golang](https://twitter.com/golang) -* [@golang_news](https://twitter.com/golang_news) -* [@golangweekly](https://twitter.com/golangweekly) - - -## Websites - -* [Awesome Remote Job](https://github.com/lukasz-madon/awesome-remote-job) - A curated list of awesome remote jobs. A lot of them is looking for Go hackers. -* [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) - List of other amazingly awesome lists. -* [Flipboard - Go Magazine](https://flipboard.com/section/the-golang-magazine-bVP7nS) - A collection of Go articles and tutorials. -* [Go Blog](http://blog.golang.org) - The official Go blog -* [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki -* [godoc.org](http://godoc.org/) - Documentation for open source Go packages. -* [golang-graphics](https://github.com/mholt/golang-graphics) - A collection of Go images, graphics, and art -* [golang-nuts](https://groups.google.com/forum/#!forum/golang-nuts) - Go mailing list -* [gowalker.org](https://gowalker.org) - Go Project API documentation. -* [r/Golang](http://www.reddit.com/r/golang) - News about Go. -* [Trending Go repositories on GitHub today](https://github.com/trending?l=go) - Good place to find new Go libraries. - - -### Tutorials - -* [A Tour of Go](http://tour.golang.org/) - Interactive tour of Go -* [Go By Example](https://gobyexample.com/) - A hands-on introduction to Go using annotated example programs -* [Go database/sql tutorial](http://go-database-sql.org/) - Introduction to database/sql -* [Working with Go](https://github.com/mkaz/working-with-go) - An intro to go for experienced programmers - - -## Windows - -* [go-ole](https://github.com/mattn/go-ole) - Win32 OLE implementation for golang From be8a5d67cc242c764584bf64fda33bfa94ed61af Mon Sep 17 00:00:00 2001 From: sadlil Date: Tue, 8 Sep 2015 23:37:12 +0600 Subject: [PATCH 003/108] Add Go logger lib with console, file or ES logging. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 559f206f..9aece3d2 100644 --- a/README.md +++ b/README.md @@ -404,10 +404,10 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for generating and working with log files.* * [glog](https://github.com/golang/glog) - Leveled execution logs for Go. -* [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Cosole, Simple Console, File or Elasticsearch. * [go-log](https://github.com/siddontang/go-log) - Log lib supports level and multi handlers. * [go-log](https://github.com/ian-kent/go-log) - A log4j implementation in Go. * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. +* [gologger](https://github.com/sadlil/gologger) - Simple easy to use log lib for go, logs in Colored Cosole, Simple Console, File or Elasticsearch. * [log-voyage](https://github.com/firstrow/logvoyage) - Full-featured logging saas written in golang. * [logex](https://github.com/go-logex/logex) - An golang log lib, supports tracking and level, wrap by standard log lib * [logrus](https://github.com/Sirupsen/logrus) - a structured logger for Go. From 99bef80c13f3f79d819d1a84d119b7f7350c9ca2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20Ram=C3=B3n?= Date: Fri, 18 Sep 2015 00:39:20 -0500 Subject: [PATCH 004/108] Adding query language section, add graphql-go. --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 006042bf..8193874f 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Networking](#networking) - [OpenGL](#opengl) - [ORM](#orm) + - [Query Language](#query-language) - [Package Management](#package-management) - [Resource Embedding](#resource-embedding) - [Science and Data Analysis](#science-and-data-analysis) @@ -545,6 +546,10 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Xorm](https://github.com/go-xorm/xorm) - Simple and powerful ORM for Go. * [Zoom](https://github.com/albrow/zoom) - A blazing-fast datastore and querying engine built on Redis. +## Query Language + +* [graphql-go](https://github.com/chris-ramon/graphql-go) - An implementation of GraphQL for Go. + ## Package Management From df9a402364302e1a1e145b3d485469269f8dcab7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20Ram=C3=B3n?= Date: Fri, 18 Sep 2015 00:46:40 -0500 Subject: [PATCH 005/108] alphabetic order --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 8193874f..4e246968 100644 --- a/README.md +++ b/README.md @@ -44,8 +44,8 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Networking](#networking) - [OpenGL](#opengl) - [ORM](#orm) - - [Query Language](#query-language) - [Package Management](#package-management) + - [Query Language](#query-language) - [Resource Embedding](#resource-embedding) - [Science and Data Analysis](#science-and-data-analysis) - [Security](#security) @@ -546,10 +546,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Xorm](https://github.com/go-xorm/xorm) - Simple and powerful ORM for Go. * [Zoom](https://github.com/albrow/zoom) - A blazing-fast datastore and querying engine built on Redis. -## Query Language - -* [graphql-go](https://github.com/chris-ramon/graphql-go) - An implementation of GraphQL for Go. - ## Package Management @@ -566,6 +562,11 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [VenGO](https://github.com/DamnWidget/VenGO) - create and manage exportable isolated go virtual environments +## Query Language + +* [graphql-go](https://github.com/chris-ramon/graphql-go) - An implementation of GraphQL for Go. + + ## Resource Embedding * [go-bindata](https://github.com/jteeuwen/go-bindata) - Package that converts any file into managable Go source code. From dc8232fe33785f9bdf3cabbffd84b4ebe6d0c170 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20Ram=C3=B3n?= Date: Tue, 22 Sep 2015 21:38:54 -0500 Subject: [PATCH 006/108] Add two libs to Query Language section. --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 4e246968..e87be61e 100644 --- a/README.md +++ b/README.md @@ -564,9 +564,12 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Query Language +* [graphql](https://github.com/tmc/graphql) - graphql parser + utilities. +* [graphql](https://github.com/sevki/graphql) - GraphQL implementation in go. * [graphql-go](https://github.com/chris-ramon/graphql-go) - An implementation of GraphQL for Go. + ## Resource Embedding * [go-bindata](https://github.com/jteeuwen/go-bindata) - Package that converts any file into managable Go source code. From 4ae08cb9c5b4ab68eb070f0948240ca73dc3dbaf Mon Sep 17 00:00:00 2001 From: Kiril Minkov Date: Fri, 25 Sep 2015 14:08:24 +0100 Subject: [PATCH 007/108] Adding go-geoindex --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d073d468..fae95312 100644 --- a/README.md +++ b/README.md @@ -187,6 +187,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [trie](https://github.com/derekparker/trie) - Trie implementation in Go * [ttlcache](https://github.com/diegobernardes/ttlcache) - An in-memory LRU string-interface{} map with expiration for golang * [willf/bloom](https://github.com/willf/bloom) - Go package implementing Bloom filters. +* [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index. ## Database From 1527d5eb5093fbf264017eac6c8154293dbf84d3 Mon Sep 17 00:00:00 2001 From: Kiril Minkov Date: Wed, 30 Sep 2015 14:45:35 +0100 Subject: [PATCH 008/108] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fae95312..300c6839 100644 --- a/README.md +++ b/README.md @@ -180,6 +180,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [cuckoofilter](https://github.com/seiflotfy/cuckoofilter) - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go. * [encoding](https://github.com/surge/encoding) - Integer Compression Libraries for Go. * [go-datastructures](https://github.com/Workiva/go-datastructures) - a collection of useful, performant, and thread-safe data structures +* [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index. * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. * [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go. * [mafsa](https://github.com/smartystreets/mafsa) - MA-FSA implementation with Minimal Perfect Hashing @@ -187,7 +188,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [trie](https://github.com/derekparker/trie) - Trie implementation in Go * [ttlcache](https://github.com/diegobernardes/ttlcache) - An in-memory LRU string-interface{} map with expiration for golang * [willf/bloom](https://github.com/willf/bloom) - Go package implementing Bloom filters. -* [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index. ## Database From 98d410a58b541887ec36a79f0eee97ca3164a28f Mon Sep 17 00:00:00 2001 From: Jack Christensen Date: Sat, 3 Oct 2015 10:41:21 -0500 Subject: [PATCH 009/108] Add pgx to database driver list --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dacf2a1f..abe500f4 100644 --- a/README.md +++ b/README.md @@ -243,6 +243,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go. * [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that using database/sql. * [gofreetds](https://github.com/minus5/gofreetds) Microsoft MSSQL driver. Go wrapper over [FreeTDS](http://www.freetds.org). + * [pgx](https://github.com/jackc/pgx) - PostgreSQL driver supporting features beyond those exposed by database/sql. * [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql. * NoSQL Databases From f4f1a81f20d3616d366308a24dc708efba369ede Mon Sep 17 00:00:00 2001 From: Gilles Fabio Date: Wed, 7 Oct 2015 10:49:13 +0200 Subject: [PATCH 010/108] Add Limiter and Deepcopier packages. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index dacf2a1f..51a44012 100644 --- a/README.md +++ b/README.md @@ -751,6 +751,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *General utilities and tools to make your life easier.* * [coop](https://github.com/rakyll/coop) - Cheat sheet for some of the common concurrent flows in Go. +* [Deepcopier](https://github.com/ulule/deepcopier) - Simple struct copying for Go * [delve](https://github.com/derekparker/delve) - Go debugger. * [fastlz](https://github.com/fromYukki/fastlz) - Wrap over [FastLz](http://fastlz.org/) (free, open-source, portable real-time compression library) for GoLang. * [filetype](https://github.com/h2non/filetype) - Small package to infer the file type checking the magic numbers signature. @@ -870,6 +871,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [CORS](https://github.com/rs/cors) - Easily add CORS capabilities to your API * [formjson](https://github.com/rs/formjson) - Transparently handle JSON input as a standard form POST +* [Limiter](https://github.com/ulule/limiter) - Dead simple rate limit middleware for Go * [Tollbooth](https://github.com/didip/tollbooth) - Rate limit HTTP request handler * [XFF](https://github.com/sebest/xff) - Handle `X-Forwarded-For` header and friends From 5517cf83ca05fd487d3f8ace2ceab70f39adb580 Mon Sep 17 00:00:00 2001 From: Francois Date: Thu, 8 Oct 2015 13:31:04 +0200 Subject: [PATCH 011/108] Adding rerun --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dacf2a1f..69c94432 100644 --- a/README.md +++ b/README.md @@ -788,6 +788,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [pm](https://github.com/VividCortex/pm) - Process (i.e. goroutine) manager with an HTTP API * [profile](https://github.com/davecheney/profile) - Simple profiling support package for Go * [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. +* [rerun](https://github.com/ivpusic/rerun) - Recompiling and rerunning go apps when source changes * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics * [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. * [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. From a76cc8be11bfabe3fab59fa3678906f534610502 Mon Sep 17 00:00:00 2001 From: jawher Date: Thu, 8 Oct 2015 21:37:22 +0200 Subject: [PATCH 012/108] Add mow.cli --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dacf2a1f..160333c6 100644 --- a/README.md +++ b/README.md @@ -126,6 +126,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [kingpin](https://github.com/alecthomas/kingpin) - A command line and flag parser supporting sub commands. * [liner](https://github.com/peterh/liner) - A Go readline-like library for command-line interfaces. * [mitchellh/cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces. +* [mow.cli](https://github.com/jawher/mow.cli) - A Go library for building CLI applications with sophisticated flag and argument parsing and validation. * [readline](https://github.com/chzyer/readline) - A pure golang implementation that provide most of features in GNU-Readline under MIT license. * [ukautz/clif](https://github.com/ukautz/clif) - A small command line interface framework. From 234c7d4ad376a63847a0b5f05fa02142e6a6c25d Mon Sep 17 00:00:00 2001 From: Vinicius Souza Date: Fri, 9 Oct 2015 10:46:25 -0300 Subject: [PATCH 013/108] Add Medium SDK for Medium's OAuth2 API --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dacf2a1f..bfd982ca 100644 --- a/README.md +++ b/README.md @@ -731,6 +731,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gostorm](https://github.com/jsgilmore/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. * [hipchat](https://github.com/andybons/hipchat) - This project implements a golang client library for the Hipchat API. * [hipchat (xmpp)](https://github.com/daneharrigan/hipchat) - A golang package to communicate with HipChat over XMPP. +* [Medium](https://github.com/Medium/medium-sdk-go) - A Golang SDK for Medium's OAuth2 API * [mixpanel](https://github.com/dukex/mixpanel) - Mixpanel is a library for tracking events and sending Mixpanel profile updates to Mixpanel from your go applications. * [pushover](https://github.com/gregdel/pushover) - Go wrapper for the Pushover API. * [rrdaclient](https://github.com/Omie/rrdaclient) - Go Library to access statdns.com API, which is in turn RRDA API. DNS Queries over HTTP. From 737c5d65c70313c65609ecc645b5a14f5986e2df Mon Sep 17 00:00:00 2001 From: Fabien Herfray Date: Wed, 14 Oct 2015 12:21:09 +0200 Subject: [PATCH 014/108] Arangolite ArangoDB driver added --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a19b782c..b94bbab9 100644 --- a/README.md +++ b/README.md @@ -249,6 +249,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * NoSQL Databases * [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. + * [arangolite](https://github.com/solher/arangolite) - Lightweight golang driver for ArangoDB. * [cayley](https://github.com/google/cayley) - A graph database with support for multiple backends. * [go-couchbase](https://github.com/couchbase/go-couchbase) - Couchbase client in Go * [go-couchdb](https://github.com/fjl/go-couchdb) - Yet another CouchDB HTTP API wrapper for Go From 4b99d0e6eb2e030dbd99a80e3f31e7bf264723ba Mon Sep 17 00:00:00 2001 From: Tobias Schmid Date: Wed, 14 Oct 2015 13:08:03 +0200 Subject: [PATCH 015/108] Add bosun --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a19b782c..949aad99 100644 --- a/README.md +++ b/README.md @@ -934,6 +934,7 @@ Software written in Go. * [aptly](https://github.com/smira/aptly) - aptly is a Debian repository management tool * [awsenv](https://github.com/soniah/awsenv) - a small binary that loads Amazon (AWS) environment variables for a profile * [Boom](https://github.com/rakyll/boom) - Boom is a tiny program that sends some load to a web application. +* [bosun](https://github.com/bosun-monitor/bosun) - Time Series Alerting Framework * [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). * [EasySSH](https://github.com/hypersleep/easyssh) - Golang package for easy remote execution through SSH and SCP downloading. * [gaudi](http://gaudi.io/) - Gaudi automates the setup of isolated and decoupled dev environments. From 518f61cb3c3eef5344e41033bbbdb8d646e62344 Mon Sep 17 00:00:00 2001 From: AJ Bourg Date: Wed, 14 Oct 2015 14:24:31 -0600 Subject: [PATCH 016/108] Update README.md Gaudi is being discontinued: http://marmelab.com/blog/2014/11/06/retiring-gaudi.html --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index a19b782c..77001234 100644 --- a/README.md +++ b/README.md @@ -936,7 +936,6 @@ Software written in Go. * [Boom](https://github.com/rakyll/boom) - Boom is a tiny program that sends some load to a web application. * [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). * [EasySSH](https://github.com/hypersleep/easyssh) - Golang package for easy remote execution through SSH and SCP downloading. -* [gaudi](http://gaudi.io/) - Gaudi automates the setup of isolated and decoupled dev environments. * [Go Metrics](https://github.com/rcrowley/go-metrics) - Go port of Coda Hale's Metrics library: https://github.com/codahale/metrics. * [go-selfupdate](https://github.com/sanbornm/go-selfupdate) - Enable your Go applications to self update. * [gobrew](https://github.com/cryptojuice/gobrew) - gobrew lets you easily switch between multiple versions of go. From 3afde332e331c3222834050d5851079a3216f52b Mon Sep 17 00:00:00 2001 From: Montana Flynn Date: Thu, 15 Oct 2015 13:04:18 -0700 Subject: [PATCH 017/108] Add stats package --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a19b782c..818eb0a5 100644 --- a/README.md +++ b/README.md @@ -596,6 +596,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gostat](https://code.google.com/p/gostat/) - A statistics library for the go language * [mudlark-go](https://code.google.com/p/mudlark-go-pkgs/) - A collection of packages providing (hopefully) useful code for use in software using Google's Go programming language. * [pagerank](https://github.com/alixaxel/pagerank) - Weighted PageRank algorithm implemented in Go +* [stats](https://github.com/montanaflynn/stats) - A statistics package with common functions missing from the Golang standard library. * [streamtools](https://github.com/nytlabs/streamtools) - general purpose, graphical tool for dealing with streams of data. * [vectormath](https://github.com/spate/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) From 22c3a67f251ace74c7ff951640d088eee93f5d2a Mon Sep 17 00:00:00 2001 From: Sam Couch Date: Thu, 15 Oct 2015 23:53:44 -0400 Subject: [PATCH 018/108] Add clarifai client library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a19b782c..49d57ee0 100644 --- a/README.md +++ b/README.md @@ -719,6 +719,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [anaconda](https://github.com/ChimeraCoder/anaconda) - A Go client library for the Twitter 1.1 API * [aws-sdk-go](https://github.com/aws/aws-sdk-go) - The official AWS SDK for the Go programming language. Caution: The SDK is currently in the process of being developed, and not everything may be working fully yet. * [brewerydb](https://github.com/naegelejd/brewerydb) - Go library for accessing the BreweryDB API. +* [clarifai](https://github.com/samuelcouch/clarifai) - A Go client library for interfacing with the Clarifai API. * [facebook](https://github.com/huandu/facebook) - Go Library that supports the Facebook Graph API * [gads](https://github.com/emiddleton/gads) - Google Adwords Unofficial API * [gami](https://github.com/bit4bit/gami) - Go library for Asterisk Manager Interface. From 576f117248369721a3c79d5bdfa2eaece8d81ae4 Mon Sep 17 00:00:00 2001 From: oskca Date: Fri, 16 Oct 2015 13:38:00 +0800 Subject: [PATCH 019/108] add Go bindings for Sciter for cross platform GUI sciter is a cross platform GUI toolkit which is easy to deploy to Linux,Windows and OSX. Though not open sourced, but the sicter libraries are free to use for commercial or non-commercial applications. I created this package with cgo, and hope it a good choice for Golang GUI programming. :) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a19b782c..03c7f027 100644 --- a/README.md +++ b/README.md @@ -373,6 +373,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gxui](https://github.com/google/gxui) - A Go cross platform UI library. * [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. * [walk](https://github.com/lxn/walk) - Windows application library kit for Go. +* [sciter](https://github.com/oskca/sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. ## Hardware From 9000dc530f098405b5d48d9c86e92d003ffd57c9 Mon Sep 17 00:00:00 2001 From: oskca Date: Fri, 16 Oct 2015 13:40:55 +0800 Subject: [PATCH 020/108] update the items orders --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 03c7f027..b41d5031 100644 --- a/README.md +++ b/README.md @@ -371,9 +371,10 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go. * [gotk3](https://github.com/conformal/gotk3) - Go bindings for GTK3. * [gxui](https://github.com/google/gxui) - A Go cross platform UI library. +* [sciter](https://github.com/oskca/sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. * [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. * [walk](https://github.com/lxn/walk) - Windows application library kit for Go. -* [sciter](https://github.com/oskca/sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. + ## Hardware From 455acffee34d928f96c452caea647299cfcfbe0e Mon Sep 17 00:00:00 2001 From: Stefan von Cavallar Date: Fri, 16 Oct 2015 18:31:50 +1100 Subject: [PATCH 021/108] Added "celeriac" library to Distributed/Grid Computing. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a19b782c..1c951a86 100644 --- a/README.md +++ b/README.md @@ -282,6 +282,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Packages that help with building Distributed Systems.* +* [celeriac](https://github.com/svcavallar/celeriac.v1) - A library for adding support for interacting and monitoring Celery workers, tasks and events in Go * [flowgraph](https://github.com/vectaport/flowgraph) - MPI-style ready-send coordination layer. * [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. From 9e2c9630a1c9fb4a175a95a6815ab24d560fd341 Mon Sep 17 00:00:00 2001 From: mashuai Date: Fri, 16 Oct 2015 16:07:18 +0800 Subject: [PATCH 022/108] add gcfg in Configuration --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a19b782c..09e25514 100644 --- a/README.md +++ b/README.md @@ -153,6 +153,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [envcfg](https://github.com/tomazk/envcfg) - Un-marshaling environment variables to Go structs. * [envconf](https://github.com/ian-kent/envconf) - Configuration from environment * [envconfig](https://github.com/vrischmann/envconfig) - Read your configuration from environment variables. +* [gcfg](https://github.com/go-gcfg/gcfg) - read INI-style configuration files into Go structs; supports user-defined types and subsections * [gofigure](https://github.com/ian-kent/gofigure) - Go application configuration made easy * [ini](https://github.com/go-ini/ini) - Go package for read and write INI files * [mini](https://github.com/FogCreek/mini) - A golang package for parsing ini-style configuration files From 559833e65fcc16309cad1f063dbdbaf3a9b9f44b Mon Sep 17 00:00:00 2001 From: mashuai Date: Fri, 16 Oct 2015 16:14:32 +0800 Subject: [PATCH 023/108] Add httptreemux to Web Frameworks --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 09e25514..2e894f2f 100644 --- a/README.md +++ b/README.md @@ -847,6 +847,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goose](https://github.com/ian-kent/goose) - Server Sent Events in Go * [Gorilla](https://github.com/gorilla/) - Gorilla is a web toolkit for the Go programming language. * [httprouter](https://github.com/julienschmidt/httprouter) - A high performance router. Use this and the standard http handlers to form a very high performance web framework. +* [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go.Inspiration from httprouter * [Macaron](https://github.com/Unknwon/macaron) - Macaron is a high productive and modular design web framework in Go. * [mango](https://github.com/paulbellamy/mango) - Mango is a modular web-application framework for Go, inspired by Rack, and PEP333. * [Martini](https://github.com/go-martini/martini) - Martini is a powerful package for quickly writing modular web applications/services in Golang. From a16e35d4cfa5de0c22db1702c1fa07cb7aed67b2 Mon Sep 17 00:00:00 2001 From: mashuai Date: Fri, 16 Oct 2015 16:22:38 +0800 Subject: [PATCH 024/108] add migrate to Database tools --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2e894f2f..05f6f0c4 100644 --- a/README.md +++ b/README.md @@ -218,6 +218,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-mysql-elasticsearch](https://github.com/siddontang/go-mysql-elasticsearch) - Sync your MySQL data into Elasticsearch automatically. * [goose](https://bitbucket.org/liamstask/goose) - Database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts. * [kingshard](https://github.com/flike/kingshard) - kingshard is a high performance proxy for MySQL powered by Golang. +* [migrate](https://github.com/mattes/migrate) - Database migration handling in Golang support MySQL,PostgreSQL,Cassandra and SQLite. * [myreplication](https://github.com/2tvenom/myreplication) - MySql binary log replication listener. Support statement and row based replication. * [orchestrator](https://github.com/outbrain/orchestrator) - MySQL replication topology manager & visualizer * [pgweb](https://github.com/sosedoff/pgweb) - A web-based PostgreSQL database browser From 376fffc900ffec7b58a2813a3c59e587fb1a6254 Mon Sep 17 00:00:00 2001 From: jerome-laforge Date: Sat, 17 Oct 2015 15:09:37 +0200 Subject: [PATCH 025/108] Add log15 into Logging --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 77001234..a9adf631 100644 --- a/README.md +++ b/README.md @@ -412,6 +412,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-log](https://github.com/ian-kent/go-log) - A log4j implementation in Go. * [go-logger](https://github.com/apsdehal/go-logger) - Simple logger of Go Programs, with level handlers. * [log-voyage](https://github.com/firstrow/logvoyage) - Full-featured logging saas written in golang. +* [log15](https://github.com/inconshreveable/log15) - Simple, powerful logging for Go * [logex](https://github.com/chzyer/logex) - An golang log lib, supports tracking and level, wrap by standard log lib * [logger](http://github.com/azer/logger) - Minimalistic logging library for Go. * [logrus](https://github.com/Sirupsen/logrus) - a structured logger for Go. From 99ae2b043c46a25b2a4ec7c3eac83e26eb742253 Mon Sep 17 00:00:00 2001 From: Swapnil Agarwal Date: Sun, 18 Oct 2015 16:43:07 +0530 Subject: [PATCH 026/108] Fix typo --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 54847d5d..31c03e69 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -34,7 +34,7 @@ To be on the list, project repositories should adhere to these quality standards ## Reporting issues -Please open an issue if you would like ot discuss anything that could be improved or have suggestions for making the list a more valuable resource. We realize sometimes packages fall into abandonment or have breaking builds for extended periods of time, so if you see that, feel free to change its listing or let us know. We also realize that sometimes projects are just going through transitions or are more experimental in nature. These can still be cool, but we can indicate them as transitory or experimental. +Please open an issue if you would like to discuss anything that could be improved or have suggestions for making the list a more valuable resource. We realize sometimes packages fall into abandonment or have breaking builds for extended periods of time, so if you see that, feel free to change its listing or let us know. We also realize that sometimes projects are just going through transitions or are more experimental in nature. These can still be cool, but we can indicate them as transitory or experimental. Removal changes will not be applied until they have been pending for a minimum of 1 week (7 days). This grace window benefits projects that may be going through a temporary transition but are otherwise worthy of being on the list. From ff675e7fda416ef3e43a90c6aceb9de7fd68f5a6 Mon Sep 17 00:00:00 2001 From: Swapnil Agarwal Date: Mon, 19 Oct 2015 09:06:01 +0530 Subject: [PATCH 027/108] Add termloop under Game Development --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a9adf631..8f5389b0 100644 --- a/README.md +++ b/README.md @@ -351,6 +351,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go3d](https://github.com/ungerik/go3d) - A performance oriented 2D/3D math package for Go * [gonet](https://github.com/xtaci/gonet) - A game server skeleton implemented with golang * [Leaf](https://github.com/name5566/leaf) - A lightweight game server framework +* [termloop](https://github.com/JoelOtter/termloop) - Terminal-based game engine for Go, built on top of Termbox ## Generation & Generics From 88496ee0b4ed385e7abd3a8d66270dd26d814332 Mon Sep 17 00:00:00 2001 From: Bruno Medeiros Date: Tue, 20 Oct 2015 17:41:26 +0100 Subject: [PATCH 028/108] Add Goclipse entry --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8f5389b0..5191e22f 100644 --- a/README.md +++ b/README.md @@ -914,6 +914,7 @@ Go software and plugins. * [go-lang-idea-plugin](https://github.com/go-lang-plugin-org/go-lang-idea-plugin) Go plugin for IntelliJ IDEA. * [go-plus](https://github.com/joefitzgerald/go-plus) - Go (Golang) Package For Atom That Adds Autocomplete, Formatting, Syntax Checking, Linting and Vetting +* [Goclipse](https://github.com/GoClipse/goclipse) - An Eclipse plugin for Go. * [gocode](https://github.com/nsf/gocode) - An autocompletion daemon for the Go programming language * [GoSublime](https://github.com/DisposaBoy/GoSublime) - A Golang plugin collection for the text editor SublimeText 2 providing code completion and other IDE-like features. * [velour](https://github.com/velour/velour) - An IRC client for the acme editor. From 58e8a621213eaf7b8319a5d4ce708fe05a4f0350 Mon Sep 17 00:00:00 2001 From: Alex Palaistras Date: Thu, 22 Oct 2015 16:32:21 +0100 Subject: [PATCH 029/108] Add link for `go-php` in `Embeddable Scripting Languages` section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5191e22f..09e176d1 100644 --- a/README.md +++ b/README.md @@ -313,6 +313,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gisp](https://github.com/jcla1/gisp) - Simple LISP in Go * [go-duktape](https://github.com/olebedev/go-duktape) - Duktape JavaScript engine bindings for Go * [go-lua](https://github.com/Shopify/go-lua) - A port of the Lua 5.2 VM to pure Go +* [go-php](https://github.com/deuill/go-php) - PHP bindings for Go * [go-python](https://github.com/sbinet/go-python) - naive go bindings to the CPython C-API * [golua](https://github.com/aarzilli/golua) - Go bindings for Lua C API * [gopher-lua](https://github.com/yuin/gopher-lua) - a Lua 5.1 VM and compiler written in Go From b1e27914309eef7e6aad42b5162492e46ef0d372 Mon Sep 17 00:00:00 2001 From: Mike Hix Date: Fri, 23 Oct 2015 11:41:35 -0700 Subject: [PATCH 030/108] Add go-dsp library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 09e176d1..0d44c2b9 100644 --- a/README.md +++ b/README.md @@ -587,6 +587,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [evaler](https://github.com/soniah/evaler) - A simple floating point arithmetic expression evaluator * [ewma](https://github.com/VividCortex/ewma) - Exponentially-weighted moving averages * [geom](https://github.com/skelterjohn/geom) - 2D geometry for golang +* [go-dsp](https://github.com/mjibson/go-dsp) - Digital Signal Processing for Go * [go-fn](https://code.google.com/p/go-fn/) - Mathematical functions written in Go language, that are not covered by math pkg * [go-gt](https://code.google.com/p/go-gt/) - Graph theory algorithms written in "Go" language * [go.matrix](https://github.com/skelterjohn/go.matrix) - linear algebra for go (has been stalled) From c385bb46668f87bf3d91048e3188c739cb4359c6 Mon Sep 17 00:00:00 2001 From: Swapnil Agarwal Date: Thu, 22 Oct 2015 17:24:04 +0530 Subject: [PATCH 031/108] Add slack invite link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5191e22f..18fdd1db 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ A curated list of awesome Go frameworks, libraries and software. Inspired by [aw Please take a quick gander at the [contribution guidelines](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md) first. Thanks to all [contributors](https://github.com/avelino/awesome-go/graphs/contributors); you rock! -[Join us on Slack](https://gophers.slack.com/messages/awesome/) to chat with other awesome-go maintainers! +[Join us on Slack](https://gophers.slack.com/messages/awesome/) to chat with other awesome-go maintainers! ([Request an invite](https://bit.ly/go-slack-signup), then join the #awesome channel.) #### *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!* From f415ab0530398e9374f5c4a6b58db864e4dbd2f2 Mon Sep 17 00:00:00 2001 From: Tom Date: Sat, 24 Oct 2015 13:32:53 +0100 Subject: [PATCH 032/108] README.md: add github.com/tomcraven/goga genetic algorithm machine learning library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d3ab6d49..3c34cd5f 100644 --- a/README.md +++ b/README.md @@ -443,6 +443,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-pr](https://github.com/daviddengcn/go-pr) - Pattern recognition package in Go lang. * [gobrain](https://github.com/goml/gobrain) - Neural Networks written in go * [godist](https://github.com/e-dard/godist) - Various probability distributions, and associated methods. +* [goga](https://github.com/tomcraven/goga) - Genetic algorithm library for Go. * [GoLearn](https://github.com/sjwhitworth/golearn) - General Machine Learning library for Go. * [golinear](https://github.com/danieldk/golinear) - liblinear bindings for Go * [goml](https://github.com/cdipaolo/goml) - On-line Machine Learning in Go From 4da4b179c57fff843d35ee0e160c6b739b9df602 Mon Sep 17 00:00:00 2001 From: Ugorji Nwoke Date: Sat, 24 Oct 2015 11:26:46 -0400 Subject: [PATCH 033/108] go-codec de-facto library for cbor, msgpack, json --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d3ab6d49..53f4acac 100644 --- a/README.md +++ b/README.md @@ -620,9 +620,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries and tools for binary serialization* -* [cbor](https://github.com/2tvenom/cbor) - Golang library for working with cbor binary format * [go-capnproto](https://github.com/glycerine/go-capnproto) - Cap'n Proto library and parser for go * [bambam](https://github.com/glycerine/bambam) - generator for Cap'n Proto schemas from go. +* [go-codec](https://github.com/ugorji/go) - High Performance, feature-Rich, idiomatic encode, decode and rpc library for msgpack, cbor and json, with runtime-based OR code-generation support * [gogoprotobuf](https://github.com/gogo/protobuf) - Protocol Buffers for Go with Gadgets * [goprotobuf](https://github.com/golang/protobuf) - Go support, in the form of a library and protocol compiler plugin, for Google's protocol buffers. * [mapstructure](https://github.com/mitchellh/mapstructure) - Go library for decoding generic map values into native Go structures. From 0edb29955d929cb418409b7adb5da47b8fc415da Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Sat, 24 Oct 2015 09:46:47 -0700 Subject: [PATCH 034/108] Update README.md --- README.md | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index d3ab6d49..8a4f042c 100644 --- a/README.md +++ b/README.md @@ -284,14 +284,18 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Packages that help with building Distributed Systems.* -* [celeriac](https://github.com/svcavallar/celeriac.v1) - A library for adding support for interacting and monitoring Celery workers, tasks and events in Go -* [flowgraph](https://github.com/vectaport/flowgraph) - MPI-style ready-send coordination layer. -* [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. -* [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. -* [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC. -* [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. -* [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. - * [dht](https://godoc.org/github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. +* Distributed Systems + * [glow](https://github.com/chrislusf/glow) - An easy-to-use distributed computation system written in Go, an alternative to Hadoop Map Reduce, Spark, Flint, etc. + +* Libraries + * [celeriac](https://github.com/svcavallar/celeriac.v1) - A library for adding support for interacting and monitoring Celery workers, tasks and events in Go + * [flowgraph](https://github.com/vectaport/flowgraph) - MPI-style ready-send coordination layer. + * [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. + * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. + * [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC. + * [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. + * [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. + * [dht](https://godoc.org/github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. ## Email From eaeed47e7e212deb0e20c17678284a220eac93a6 Mon Sep 17 00:00:00 2001 From: Sioro Neoku Date: Sun, 25 Oct 2015 16:46:05 +0100 Subject: [PATCH 035/108] Add go-peerflix --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4d2fc6c8..368d23a1 100644 --- a/README.md +++ b/README.md @@ -293,6 +293,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. * [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. * [dht](https://godoc.org/github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. + * [go-peerflix](https://github.com/Sioro-Neoku/go-peerflix) - Video streaming torrent client. ## Email From 3d0eec51b7f5a49acbcb73f4a010594fff66572f Mon Sep 17 00:00:00 2001 From: Eduardo Nunes Pereira Date: Mon, 26 Oct 2015 22:20:08 -0200 Subject: [PATCH 036/108] Added SSLB --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4d2fc6c8..dbe17859 100644 --- a/README.md +++ b/README.md @@ -533,6 +533,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [sftp](https://github.com/pkg/sftp) - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. * [tcp_server](https://github.com/firstrow/tcp_server) - A Go library for building tcp servers faster. * [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. +* [sslb](https://github.com/eduardonunesp/sslb) - It's a Super Simples Load Balancer, just a little project to achieve some kind of performance. ## OpenGL From 38fcbfc6aaf523094524c04f7f272e172270713d Mon Sep 17 00:00:00 2001 From: Rodrigo Muniz Date: Tue, 27 Oct 2015 08:57:09 -0200 Subject: [PATCH 037/108] LiteIDE included --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4d2fc6c8..d6599dcb 100644 --- a/README.md +++ b/README.md @@ -983,6 +983,7 @@ Software written in Go. * [hugo](http://gohugo.io/) - A Fast and Modern Static Website Engine * [Juju](https://juju.ubuntu.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. * [limetext](http://limetext.org/) 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](https://github.com/visualfc/liteide) LiteIDE is a simple, open source, cross-platform Go IDE. * [naclpipe](https://github.com/unix4fun/naclpipe) - A simple NaCL EC25519 based crypto pipe tool written in Go. * [nes](https://github.com/fogleman/nes) - A Nintendo Entertainment System (NES) emulator written in Go. * [orange-cat](https://github.com/noraesae/orange-cat) - A Markdown previewer written in Go. From aac1f00b38a2922950b752fbc04822b6ebbdbd2b Mon Sep 17 00:00:00 2001 From: Pekka Enberg Date: Tue, 27 Oct 2015 15:40:22 +0200 Subject: [PATCH 038/108] Update gotk3 URL The upstream project has not been active for over a year. Update the URL to point to an active fork. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4d2fc6c8..744328bc 100644 --- a/README.md +++ b/README.md @@ -375,7 +375,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-gtk](http://mattn.github.io/go-gtk/) - Go bindings for GTK * [go-qml](https://github.com/go-qml/qml) - QML support for the Go language * [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go. -* [gotk3](https://github.com/conformal/gotk3) - Go bindings for GTK3. +* [gotk3](https://github.com/gotk3/gotk3) - Go bindings for GTK3. * [gxui](https://github.com/google/gxui) - A Go cross platform UI library. * [sciter](https://github.com/oskca/sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. * [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. From 03dc2d958d7b90e22276575dc5cce598425eba9c Mon Sep 17 00:00:00 2001 From: AJ Bourg Date: Tue, 27 Oct 2015 12:01:17 -0600 Subject: [PATCH 039/108] Add go-getter to the network section. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4d2785c9..22a1cbca 100644 --- a/README.md +++ b/README.md @@ -521,6 +521,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [dns](https://github.com/miekg/dns) - Go library for working with DNS * [ethernet](https://github.com/mdlayher/ethernet) - Package ethernet implements marshaling and unmarshaling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags. * [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](http://tools.ietf.org/html/rfc959). +* [go-getter](https://github.com/hashicorp/go-getter) - A Go library for downloading files or directories from various sources using a URL. * [go-stun](https://github.com/ccding/go-stun) - A go implementation of the STUN client (RFC 3489 and RFC 5389). * [gopacket](https://github.com/google/gopacket) - A Go library for packet processing with libpcap bindings * [gopcap](https://github.com/akrennmair/gopcap) - A Go wrapper for libpcap From 52322145f3bdc939f61d58089d0f1e1c37a5fa4d Mon Sep 17 00:00:00 2001 From: Derek Tracy Date: Tue, 27 Oct 2015 14:33:03 -0400 Subject: [PATCH 040/108] add gb --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4d2785c9..34454f16 100644 --- a/README.md +++ b/README.md @@ -937,6 +937,7 @@ Go software and plugins. ## Go Tools * [colorgo](https://github.com/songgao/colorgo) - A wrapper around `go` command for colorized `go build` output. +* [gb](https://getgb.io/) - An easy to use project based build tool for the Go programming language. * [go-pkg-complete](https://github.com/skelterjohn/go-pkg-complete) - Bash completion for go and wgo. ## Software Packages From 8febb3aa77d8e8149cf961f424ffb570e6e24c80 Mon Sep 17 00:00:00 2001 From: AJ Bourg Date: Tue, 27 Oct 2015 13:09:36 -0600 Subject: [PATCH 041/108] Add s3gof3r to list of devops tools. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4d2785c9..393f7ba2 100644 --- a/README.md +++ b/README.md @@ -965,6 +965,7 @@ Software written in Go. * [ostent](https://github.com/ostrost/ostent) - collects and displays system metrics and optionally relays to Graphite and/or InfluxDB * [Packer](https://github.com/mitchellh/packer) - Packer is a tool for creating identical machine images for multiple platforms from a single source configuration. * [Rodent](https://github.com/alouche/rodent) - Rodent helps you manage Go versions, projects and track dependencies. +* [s3gof3r](https://github.com/rlmcpherson/s3gof3r) - A small utility/library optimized for high speed transfer of large objects into and out of Amazon S3. * [Vegeta] (https://github.com/tsenart/vegeta) - HTTP load testing tool and library. It's over 9000! * [webhook](https://github.com/adnanh/webhook) - Tool which allows user to create HTTP endpoints (hooks) that execute commands on the server * [Wide](https://wide.b3log.org) - A Web-based IDE for Teams using Golang. From 83ce6de0bf1d2f81bfbd3d127c15d567add696fe Mon Sep 17 00:00:00 2001 From: Kazi Sadlil Rhythom Date: Wed, 28 Oct 2015 13:26:42 +0600 Subject: [PATCH 042/108] added go trigger in utilities. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9f9b44af..80bfa9c3 100644 --- a/README.md +++ b/README.md @@ -787,6 +787,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goreq](https://github.com/smallnest/goreq) - An enhanced simplified HTTP client based on gorequest. * [gorequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features for Go. * [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go +* [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with a id and trigger the event from anywhere from your project. * [htcat](https://github.com/htcat/htcat) - Parallel and Pipelined HTTP GET Utility * [httpcontrol](https://github.com/facebookgo/httpcontrol) - Package httpcontrol allows for HTTP transport level control around timeouts and retries. * [hystrix-go](https://github.com/afex/hystrix-go) - Imprements Hystrix patterns of programmer-defined fallbacks aka circuit breaker. From e759f2c5f921549b86c4c4b0881c3d8ec5e4f1dd Mon Sep 17 00:00:00 2001 From: Kazi Sadlil Rhythom Date: Wed, 28 Oct 2015 13:30:18 +0600 Subject: [PATCH 043/108] position updated. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 80bfa9c3..96d255e6 100644 --- a/README.md +++ b/README.md @@ -774,6 +774,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-debug](https://github.com/tj/go-debug) - Conditional debug logging for Golang libraries & applications * [go-dry](https://github.com/ungerik/go-dry) - DRY (don't repeat yourself) package for Go. * [go-rate](https://github.com/beefsack/go-rate) - A timed rate limiter for Go +* [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with a id and trigger the event from anywhere from your project. * [go-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities. * [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. * [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons @@ -787,7 +788,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goreq](https://github.com/smallnest/goreq) - An enhanced simplified HTTP client based on gorequest. * [gorequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features for Go. * [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go -* [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with a id and trigger the event from anywhere from your project. * [htcat](https://github.com/htcat/htcat) - Parallel and Pipelined HTTP GET Utility * [httpcontrol](https://github.com/facebookgo/httpcontrol) - Package httpcontrol allows for HTTP transport level control around timeouts and retries. * [hystrix-go](https://github.com/afex/hystrix-go) - Imprements Hystrix patterns of programmer-defined fallbacks aka circuit breaker. From 42f1d57a9159a94edbf35d8ae407987d6337a661 Mon Sep 17 00:00:00 2001 From: Nathan Osman Date: Wed, 28 Oct 2015 22:57:09 -0700 Subject: [PATCH 044/108] Added Hectane to the Email section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a9586889..ef5d60b3 100644 --- a/README.md +++ b/README.md @@ -304,6 +304,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [email](https://github.com/jordan-wright/email) - A robust and flexible email library for Go. * [go-dkim](https://github.com/toorop/go-dkim) - A DKIM library, to sign & verify email. * [Gomail](https://github.com/go-gomail/gomail/) - Gomail is a very simple and powerful package to send emails. +* [Hectane](https://github.com/hectane/hectane) - Lightweight SMTP client providing an HTTP API * [MailHog](https://github.com/mailhog/MailHog) - Email and SMTP testing with web and API interface * [SendGrid](https://github.com/sendgrid/sendgrid-go) - SendGrid's Go library for sending email * [smtp](https://github.com/mailhog/smtp) - SMTP server protocol state machine From d5b793368dc85b08ede74488372c2fbce8fde3d1 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Fri, 30 Oct 2015 19:12:33 +0100 Subject: [PATCH 045/108] Add hsync --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a9586889..b1bfdcdd 100644 --- a/README.md +++ b/README.md @@ -986,6 +986,7 @@ Software written in Go. * [gocc](https://github.com/goccmack/gocc) - Gocc is a compiler kit for Go written in Go. * [Gor](https://github.com/buger/gor) - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time. * [heka](https://github.com/mozilla-services/heka) - universal tool for data processing from Mozilla. Large collection of built-in plugins. Extendable via Go and Lua plugin API. +* [hsync](http://ambrevar.bitbucket.org/hsync/) - A filesystem hierarchy synchronizer * [hugo](http://gohugo.io/) - A Fast and Modern Static Website Engine * [Juju](https://juju.ubuntu.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. * [limetext](http://limetext.org/) 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. From 4890e10ef753c27daf91d2e3843f991d7bd15791 Mon Sep 17 00:00:00 2001 From: chrislusf Date: Sat, 31 Oct 2015 10:19:56 -0700 Subject: [PATCH 046/108] Revert "Update README.md" This reverts commit 0edb29955d929cb418409b7adb5da47b8fc415da. --- README.md | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 8a4f042c..d3ab6d49 100644 --- a/README.md +++ b/README.md @@ -284,18 +284,14 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Packages that help with building Distributed Systems.* -* Distributed Systems - * [glow](https://github.com/chrislusf/glow) - An easy-to-use distributed computation system written in Go, an alternative to Hadoop Map Reduce, Spark, Flint, etc. - -* Libraries - * [celeriac](https://github.com/svcavallar/celeriac.v1) - A library for adding support for interacting and monitoring Celery workers, tasks and events in Go - * [flowgraph](https://github.com/vectaport/flowgraph) - MPI-style ready-send coordination layer. - * [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. - * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. - * [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC. - * [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. - * [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. - * [dht](https://godoc.org/github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. +* [celeriac](https://github.com/svcavallar/celeriac.v1) - A library for adding support for interacting and monitoring Celery workers, tasks and events in Go +* [flowgraph](https://github.com/vectaport/flowgraph) - MPI-style ready-send coordination layer. +* [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. +* [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. +* [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC. +* [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. +* [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package. + * [dht](https://godoc.org/github.com/anacrolix/torrent/dht) - BitTorrent Kademlia DHT implementation. ## Email From e3f0d2490001225f643346d597a360c7b41ed4b2 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Sat, 31 Oct 2015 11:28:00 -0700 Subject: [PATCH 047/108] add "glow" for distributed computing --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d3ab6d49..cdfdd482 100644 --- a/README.md +++ b/README.md @@ -286,6 +286,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [celeriac](https://github.com/svcavallar/celeriac.v1) - A library for adding support for interacting and monitoring Celery workers, tasks and events in Go * [flowgraph](https://github.com/vectaport/flowgraph) - MPI-style ready-send coordination layer. +* [glow](https://github.com/chrislusf/glow) - Easy-to-Use scalable distributed big data processing, Map-Reduce, DAG execution, all in pure Go. * [go-jump](https://github.com/dgryski/go-jump) - A port of Google's "Jump" Consistent Hash function. * [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load. * [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC. From 2e5cd523a63abe9b2901089d3f22a95dd19cc608 Mon Sep 17 00:00:00 2001 From: sunwxg Date: Sun, 1 Nov 2015 20:58:59 +0800 Subject: [PATCH 048/108] Add goshark --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a9586889..44f321c0 100644 --- a/README.md +++ b/README.md @@ -536,6 +536,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [sftp](https://github.com/pkg/sftp) - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. * [tcp_server](https://github.com/firstrow/tcp_server) - A Go library for building tcp servers faster. * [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. +* [goshark](https://github.com/sunwxg/goshark) - Package goshark use tshark to decode IP packet and create data struct to analyse packet. ## OpenGL From b20ca49c890536dbe89bded96a6e424b7b7e4a9d Mon Sep 17 00:00:00 2001 From: sunwxg Date: Sun, 1 Nov 2015 21:33:17 +0800 Subject: [PATCH 049/108] Add goshark sorted alphabetically --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 44f321c0..00454f26 100644 --- a/README.md +++ b/README.md @@ -526,6 +526,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-stun](https://github.com/ccding/go-stun) - A go implementation of the STUN client (RFC 3489 and RFC 5389). * [gopacket](https://github.com/google/gopacket) - A Go library for packet processing with libpcap bindings * [gopcap](https://github.com/akrennmair/gopcap) - A Go wrapper for libpcap +* [goshark](https://github.com/sunwxg/goshark) - Package goshark use tshark to decode IP packet and create data struct to analyse packet. * [gosnmp](https://github.com/soniah/gosnmp) - Native Go library for performing SNMP actions * [gotcp](https://github.com/gansidui/gotcp) - A Go package for quickly writing tcp applications * [graval](https://github.com/koofr/graval) - An experimental FTP server framework. @@ -536,7 +537,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [sftp](https://github.com/pkg/sftp) - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. * [tcp_server](https://github.com/firstrow/tcp_server) - A Go library for building tcp servers faster. * [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. -* [goshark](https://github.com/sunwxg/goshark) - Package goshark use tshark to decode IP packet and create data struct to analyse packet. ## OpenGL From 687aae808a0a2c247bdcf12b7162e25fecb0d932 Mon Sep 17 00:00:00 2001 From: Dalton Hubble Date: Mon, 2 Nov 2015 01:33:16 -0800 Subject: [PATCH 050/108] Add gologin package to auth & oauth section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9f9b44af..8d6840ce 100644 --- a/README.md +++ b/README.md @@ -102,6 +102,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Go-AWS-Auth](https://github.com/smartystreets/go-aws-auth) - AWS (Amazon Web Services) request signing library. * [go-jose](https://github.com/square/go-jose) - A fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. * [go.auth](https://github.com/bradrydzewski/go.auth) - Authentication API for Go web applications. +* [gologin](https://github.com/dghubble/gologin) - chainable handlers for login with OAuth1 and OAuth2 authentication providers. * [gorbac](https://github.com/mikespook/gorbac) - provides a lightweight role-based access control (RBAC) implementation in Golang. * [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple provides out of the box. * [httpauth](https://github.com/goji/httpauth) - HTTP Authentication middleware. From dc0f5f68524c127aca4105b30caf1549e7704b10 Mon Sep 17 00:00:00 2001 From: joeybloggs Date: Mon, 2 Nov 2015 10:42:54 -0500 Subject: [PATCH 051/108] Add webhooks library * Add Github Webhook library, more service to come i.e. BitBucket.. https://github.com/go-playground/webhooks --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f1460dce..cddae0f2 100644 --- a/README.md +++ b/README.md @@ -834,6 +834,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [git2go](https://github.com/libgit2/git2go) - Go bindings for libgit2. * [go-vcs](https://github.com/sourcegraph/go-vcs) - manipulate and inspect VCS repositories in Go. * [hgo](https://github.com/beyang/hgo) - Hgo is a collection of Go packages providing read-access to local Mercurial repositories. +* [webhooks](https://github.com/go-playground/webhooks) - Webhook reciever for GitHub.. more services to come ## Video From a136aeb29fffcb0fd854ba4b8eef86e740e69567 Mon Sep 17 00:00:00 2001 From: joeybloggs Date: Mon, 2 Nov 2015 12:44:09 -0500 Subject: [PATCH 052/108] moving from version control section to 3rd party API --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cddae0f2..8b31eae0 100644 --- a/README.md +++ b/README.md @@ -766,6 +766,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - A simple golang package to communicate with [themoviedb.org](https://themoviedb.org) * [translate](https://github.com/poorny/translate) - Go online translation package * [tumblr](https://github.com/mattcunningham/gumblr) - Go wrapper for the Tumblr v2 API. +* [webhooks](https://github.com/go-playground/webhooks) - Webhook reciever for GitHub.. more services to come ## Utilities @@ -834,7 +835,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [git2go](https://github.com/libgit2/git2go) - Go bindings for libgit2. * [go-vcs](https://github.com/sourcegraph/go-vcs) - manipulate and inspect VCS repositories in Go. * [hgo](https://github.com/beyang/hgo) - Hgo is a collection of Go packages providing read-access to local Mercurial repositories. -* [webhooks](https://github.com/go-playground/webhooks) - Webhook reciever for GitHub.. more services to come ## Video From 7195e9b03012081d8a75008c13c68b3d9a345d04 Mon Sep 17 00:00:00 2001 From: Drew Wells Date: Sun, 9 Aug 2015 08:50:26 -0500 Subject: [PATCH 053/108] add wellington and low level libsass wrapper Adds the go-libsass lib for writing your own Sass tooling. The default implementation, wellington, implements a tool for working on Sass projects. Wellington adds the same spriting functions as available in Compass. Signed-off-by: Drew Wells --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index f1460dce..0895d913 100644 --- a/README.md +++ b/README.md @@ -173,6 +173,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [c6](https://github.com/c9s/c6) - High performance SASS compatible-implementation compiler written in Go * [gcss](https://github.com/yosssi/gcss) - Pure Go CSS Preprocessor. +* [go-libsass](https://github.com/wellington/go-libsass) - Go wrapper to the 100% Sass compatible libsass project. ## Data Structures @@ -1008,6 +1009,7 @@ Software written in Go. * [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. * [tsuru](http://www.tsuru.io/) - An extensible and open source Platform as a Service software. * [websysd](https://github.com/ian-kent/websysd) - Web based process manager (like Marathon or Upstart) +* [wellington](https://github.com/wellington/wellington) - Sass project management tool, extends the language with sprite functions (like Compass) From a129095a0f8c4eca255f6e1dc43be38de0b707b0 Mon Sep 17 00:00:00 2001 From: Arinde Eniola Date: Wed, 4 Nov 2015 11:36:06 +0100 Subject: [PATCH 054/108] add Go compilers to awesome go's sections --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index a03a2b7c..90a5dbe6 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Forms](#forms) - [Game Development](#game-development) - [Generation & Generics](#generation--generics) + - [Go Compilers](#go-compilers) - [GUI](#gui) - [Hardware](#hardware) - [Images](#images) @@ -374,6 +375,15 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [pkgreflect](https://github.com/ungerik/pkgreflect) - A Go preprocessor for package scoped reflection. +## Go Compilers + +*Tools for compiling Go to other languages* + +* [gopherjs](https://github.com/gopherjs/gopherjs) - A compiler from Go to JavaScript. +* [llgo](https://github.com/go-llvm/llgo) - LLVM-based compiler for Go. +* [tardisgo](https://github.com/tardisgo/tardisgo) - Golang to Haxe to CPP/CSharp/Java/JavaScript transpiler. + + ## GUI *Libraries for building GUI Applications* From 1d578394cf16193cbfd8f0847057a6b91f416040 Mon Sep 17 00:00:00 2001 From: Alvaro Viebrantz Date: Thu, 5 Nov 2015 11:36:11 -0300 Subject: [PATCH 055/108] Add dat library for postgres database access --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a03a2b7c..ca8a4f6c 100644 --- a/README.md +++ b/README.md @@ -230,6 +230,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *SQL query builder, libraries for building and using SQL.* +* [dat](https://github.com/mgutz/dat) - Go Postgres Data Access Toolkit * [Dotsql](https://github.com/gchaincl/dotsql) - Go library that helps you keep sql files in one place and use it with ease. * [goqu](https://github.com/doug-martin/goqu) - An idiomatic SQL builder and query library. * [scaneo](https://github.com/variadico/scaneo) - Generate Go code to convert database rows into arbitrary structs. From 75b3cae1ea461aac6caf4f52bc7db135dfae4178 Mon Sep 17 00:00:00 2001 From: Bam Azizi Date: Fri, 6 Nov 2015 14:19:56 -0500 Subject: [PATCH 056/108] add JobRunner cron scheduler --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3cc1e73f..50fff321 100644 --- a/README.md +++ b/README.md @@ -809,6 +809,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [htcat](https://github.com/htcat/htcat) - Parallel and Pipelined HTTP GET Utility * [httpcontrol](https://github.com/facebookgo/httpcontrol) - Package httpcontrol allows for HTTP transport level control around timeouts and retries. * [hystrix-go](https://github.com/afex/hystrix-go) - Imprements Hystrix patterns of programmer-defined fallbacks aka circuit breaker. +* [JobRunner](https://github.com/bamzi/jobrunner) - Smart and featureful cron job scheduler with job queuing and live monitoring built in. * [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. * [jsongo](https://github.com/ricardolonga/jsongo) - Fluent API to make it easier to create Json objects. * [lrserver](https://github.com/jaschaephraim/lrserver) - LiveReload server for Go From 11437fc405c4f83f9953adad6df9d4a103ed816d Mon Sep 17 00:00:00 2001 From: Wesley Hill Date: Tue, 10 Nov 2015 03:06:02 +0000 Subject: [PATCH 057/108] Replace outdated Snapchat library with an updated one. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3cc1e73f..2dc786ae 100644 --- a/README.md +++ b/README.md @@ -770,7 +770,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [shopify](https://github.com/rapito/go-shopify) - Go Library to make CRUD request to the Shopify API. * [slack](https://github.com/nlopes/slack) - Slack API in Go. * [smite](https://github.com/sergiotapia/smitego) - Go package to wraps access to the Smite game API. -* [snapchat](https://github.com/jamieomatthews/gosnap) - Go wrapper for the snapchat API +* [snapchat](https://github.com/neuegram/ghost) - Go Library for the Snapchat API. * [spotify](https://github.com/rapito/go-spotify) - Go Library to access Spotify WEB API. * [steam](https://github.com/sostronk/go-steam) - Go Library to interact with Steam game servers. * [stripe](https://github.com/stripe/stripe-go) - Go client for the Stripe API From 65176d44fe5c9a695157303eb37fe6be6069f99b Mon Sep 17 00:00:00 2001 From: Wesley Hill Date: Tue, 10 Nov 2015 10:38:05 +0000 Subject: [PATCH 058/108] Renamed 'snapchat' to 'ghost' --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2dc786ae..45287ce4 100644 --- a/README.md +++ b/README.md @@ -754,6 +754,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gads](https://github.com/emiddleton/gads) - Google Adwords Unofficial API * [gami](https://github.com/bit4bit/gami) - Go library for Asterisk Manager Interface. * [geo-golang](https://github.com/codingsince1985/geo-golang) - Go Library to access [Google Maps](https://developers.google.com/maps/documentation/geocoding/), [MapQuest](http://open.mapquestapi.com/geocoding/), [Nominatim](http://open.mapquestapi.com/nominatim/), [OpenCage](http://geocoder.opencagedata.com/api.html), [HERE](https://developer.here.com/rest-apis/documentation/geocoder) and [Bing](https://msdn.microsoft.com/en-us/library/ff701715.aspx) geocoding / reverse geocoding APIs. +* [ghost](https://github.com/neuegram/ghost) - Go Library for accessing the Snapchat API. * [github](https://github.com/google/go-github) - Go library for accessing the GitHub API. * [go-marathon](https://github.com/gambol99/go-marathon) - A Go library for interacting with Mesosphere's Marathon PAAS * [goamz](https://github.com/mitchellh/goamz) - Popular fork of [goamz](https://launchpad.net/goamz) which adds some missing API calls to certain packages. @@ -770,7 +771,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [shopify](https://github.com/rapito/go-shopify) - Go Library to make CRUD request to the Shopify API. * [slack](https://github.com/nlopes/slack) - Slack API in Go. * [smite](https://github.com/sergiotapia/smitego) - Go package to wraps access to the Smite game API. -* [snapchat](https://github.com/neuegram/ghost) - Go Library for the Snapchat API. * [spotify](https://github.com/rapito/go-spotify) - Go Library to access Spotify WEB API. * [steam](https://github.com/sostronk/go-steam) - Go Library to interact with Steam game servers. * [stripe](https://github.com/stripe/stripe-go) - Go client for the Stripe API From d016aca89b54d2b44dcee3b717e9e5f4afaaf101 Mon Sep 17 00:00:00 2001 From: J Cuga Date: Fri, 13 Nov 2015 11:13:17 -0500 Subject: [PATCH 059/108] Added golongpoll for web pub-sub vialongpolling --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f74fe139..d91671cd 100644 --- a/README.md +++ b/README.md @@ -876,6 +876,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Goat](https://github.com/bahlo/goat) - A minimalistic REST API server in Go * [gocraft/web](https://github.com/gocraft/web) - A mux and middleware package in Go. * [Goji](https://github.com/zenazn/goji) - Goji is a minimalistic web framework for Golang that's high in antioxidants. +* [golongpoll](https://github.com/jcuga/golongpoll) - HTTP longpoll server library that makes web pub-sub simple. * [Gondola](https://github.com/rainycape/gondola) - The web framework for writing faster sites, faster * [goose](https://github.com/ian-kent/goose) - Server Sent Events in Go * [Gorilla](https://github.com/gorilla/) - Gorilla is a web toolkit for the Go programming language. From b040ea05fe7d353c90e12c57be91d10a41bdf24a Mon Sep 17 00:00:00 2001 From: ReadmeCritic Date: Fri, 13 Nov 2015 12:31:47 -0800 Subject: [PATCH 060/108] Update redirects in Readme --- README.md | 58 +++++++++++++++++++++++++++---------------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index f74fe139..2b357f60 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ A curated list of awesome Go frameworks, libraries and software. Inspired by [aw Please take a quick gander at the [contribution guidelines](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md) first. Thanks to all [contributors](https://github.com/avelino/awesome-go/graphs/contributors); you rock! -[Join us on Slack](https://gophers.slack.com/messages/awesome/) to chat with other awesome-go maintainers! ([Request an invite](https://bit.ly/go-slack-signup), then join the #awesome channel.) +[Join us on Slack](https://gophers.slack.com/?redir=%2Fmessages%2Fawesome%2F) to chat with other awesome-go maintainers! ([Request an invite](https://bit.ly/go-slack-signup), then join the #awesome channel.) #### *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!* @@ -89,7 +89,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [flac](https://github.com/eaburns/flac) - A native Go FLAC decoder. * [go-sox](https://github.com/krig/go-sox) - libsox bindings for go. -* [PortAudio](https://code.google.com/p/portaudio-go/) - Go bindings for the PortAudio audio I/O library. +* [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library. * [portmidi](https://github.com/rakyll/portmidi) - Go bindings for PortMidi. * [taglib](https://github.com/wtolson/go-taglib) - Go bindings for taglib. * [vorbis](https://github.com/mccoyst/vorbis) - A "native" Go Vorbis decoder (uses CGO, but has no dependencies). @@ -121,7 +121,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for building standard or basic Command Line applications* -* [cli-init](https://github.com/tcnksm/cli-init) - The easy way to start building Golang command line application. +* [cli-init](https://github.com/tcnksm/gcli) - The easy way to start building Golang command line application. * [cobra](https://github.com/spf13/cobra) - A Commander for modern Go CLI interactions * [codegangsta/cli](https://github.com/codegangsta/cli) - A small package for building command line apps in Go. * [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser @@ -142,7 +142,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gocui](https://github.com/jroimartin/gocui) - Minimalist Go library aimed at creating Console User Interfaces. * [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. * [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. -* [termtables](https://github.com/apcera/termtables) - A Go port of the Ruby library [terminal-tables](https://github.com/visionmedia/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output +* [termtables](https://github.com/apcera/termtables) - A Go port of the Ruby library [terminal-tables](https://github.com/tj/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output * [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). @@ -181,10 +181,10 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Generic datastructures and algorithms in Go.* * [bitset](https://github.com/willf/bitset) - Go package implementing bitsets. -* [bloom](https://github.com/surge/bloom) - Bloom filters implemented in Go. +* [bloom](https://github.com/zhenjl/bloom) - Bloom filters implemented in Go. * [boomfilters](https://github.com/tylertreat/BoomFilters) - probabilistic data structures for processing continuous, unbounded streams * [cuckoofilter](https://github.com/seiflotfy/cuckoofilter) - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go. -* [encoding](https://github.com/surge/encoding) - Integer Compression Libraries for Go. +* [encoding](https://github.com/zhenjl/encoding) - Integer Compression Libraries for Go. * [go-datastructures](https://github.com/Workiva/go-datastructures) - a collection of useful, performant, and thread-safe data structures * [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go. * [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go. @@ -235,7 +235,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [Dotsql](https://github.com/gchaincl/dotsql) - Go library that helps you keep sql files in one place and use it with ease. * [goqu](https://github.com/doug-martin/goqu) - An idiomatic SQL builder and query library. * [scaneo](https://github.com/variadico/scaneo) - Generate Go code to convert database rows into arbitrary structs. -* [Squirrel](https://github.com/lann/squirrel) - Go library that helps you build SQL queries. +* [Squirrel](https://github.com/Masterminds/squirrel) - Go library that helps you build SQL queries. ## Database Drivers @@ -264,7 +264,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gocql](http://gocql.github.io) - A Go language driver for Apache Cassandra. * [gomemcache](https://github.com/bradfitz/gomemcache/) - memcache client library for the Go programming language. * [gorethink](https://github.com/dancannon/gorethink) - Go language driver for RethinkDB - * [mgo](http://godoc.org/labix.org/v2/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. + * [mgo](https://godoc.org/labix.org/v2/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](https://github.com/cihangir/neo4j) - Neo4j Rest API Bindings for Golang * [Neo4j-GO](https://github.com/davemeehan/Neo4j-GO) - Neo4j REST Client in golang. * [neoism](https://github.com/jmcvetta/neoism) - Neo4j client for Golang @@ -439,7 +439,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [log-voyage](https://github.com/firstrow/logvoyage) - Full-featured logging saas written in golang. * [log15](https://github.com/inconshreveable/log15) - Simple, powerful logging for Go * [logex](https://github.com/chzyer/logex) - An golang log lib, supports tracking and level, wrap by standard log lib -* [logger](http://github.com/azer/logger) - Minimalistic logging library for Go. +* [logger](https://github.com/azer/logger) - Minimalistic logging library for Go. * [logrus](https://github.com/Sirupsen/logrus) - a structured logger for Go. * [logrusly](https://github.com/sebest/logrusly) - [logrus](https://github.com/sirupsen/logrus) plug-in to send errors to a [Loggly](https://www.loggly.com/). * [logutils](https://github.com/hashicorp/logutils) - Utilities for slightly better logging in Go (Golang) extending the standard logger. @@ -448,7 +448,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [mlog](https://github.com/jbrodriguez/mlog) - A simple logging module for go, with 5 levels, an optional rotating logfile feature and stdout/stderr output. * [seelog](https://github.com/cihub/seelog) - logging functionality with flexible dispatching, filtering, and formatting. * [stdlog](https://github.com/alexcesaro/log) - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs. -* [tail](https://github.com/ActiveState/tail) - A Go package striving to emulate the features of the BSD tail program. +* [tail](https://github.com/hpcloud/tail) - A Go package striving to emulate the features of the BSD tail program. ## Machine Learning @@ -481,10 +481,10 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [dbus](https://github.com/godbus/dbus) - Native Go bindings for D-Bus. * [EventBus](https://github.com/asaskevich/EventBus) - The lightweight event bus with async compatibility. * [go-notify](https://github.com/TheCreeper/go-notify) - Native implementation of the freedesktop notification spec. -* [go-nsq](https://github.com/bitly/go-nsq) - the official Go package for NSQ +* [go-nsq](https://github.com/nsqio/go-nsq) - the official Go package for NSQ * [gopush-cluster](https://github.com/Terry-Mao/gopush-cluster) - gopush-cluster is a go push server cluster. * [machinery](https://github.com/RichardKnop/machinery) - An asynchronous task queue/job queue based on distributed message passing. -* [NATS](https://github.com/apcera/nats) - A lightweight and highly performant publish-subscribe and distributed queueing messaging system. +* [NATS](https://github.com/nats-io/nats) - A lightweight and highly performant publish-subscribe and distributed queueing messaging system. * [oplog](https://github.com/dailymotion/oplog) - A generic oplog/replication system for REST APIs * [pubsub](https://github.com/tuxychandru/pubsub) - A simple pubsub package for go. * [sarama](https://github.com/Shopify/sarama) - A Go library for Apache Kafka. @@ -520,7 +520,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [MMSEGO](https://github.com/awsong/MMSEGO) - This is a GO implementation of [MMSEG](http://technology.chtsai.org/mmseg/) which a Chinese word splitting algorithm. * [paicehusk](https://github.com/rookii/paicehusk) - Golang implementation of the Paice/Husk Stemming Algorithm * [porter](https://github.com/a2800276/porter) - This is a fairly straighforward port of Martin Porter's C implementation of the Porter stemming algorithm. -* [porter2](https://github.com/surge/porter2) - Really fast Porter 2 stemmer. +* [porter2](https://github.com/zhenjl/porter2) - Really fast Porter 2 stemmer. * [segment](https://github.com/blevesearch/segment) - A Go library for performing Unicode Text Segmentation as described in [Unicode Standard Annex #29](http://www.unicode.org/reports/tr29/) * [snowball](https://github.com/goodsign/snowball) - Snowball stemmer port (cgo wrapper) for Go. Provides word stem extraction functionality [Snowball native](http://snowball.tartarus.org/). * [stemmer](https://github.com/dchest/stemmer) - Stemmer packages for Go programming language. Includes English and German stemmers. @@ -753,7 +753,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [facebook](https://github.com/huandu/facebook) - Go Library that supports the Facebook Graph API * [gads](https://github.com/emiddleton/gads) - Google Adwords Unofficial API * [gami](https://github.com/bit4bit/gami) - Go library for Asterisk Manager Interface. -* [geo-golang](https://github.com/codingsince1985/geo-golang) - Go Library to access [Google Maps](https://developers.google.com/maps/documentation/geocoding/), [MapQuest](http://open.mapquestapi.com/geocoding/), [Nominatim](http://open.mapquestapi.com/nominatim/), [OpenCage](http://geocoder.opencagedata.com/api.html), [HERE](https://developer.here.com/rest-apis/documentation/geocoder) and [Bing](https://msdn.microsoft.com/en-us/library/ff701715.aspx) geocoding / reverse geocoding APIs. +* [geo-golang](https://github.com/codingsince1985/geo-golang) - Go Library to access [Google Maps](https://developers.google.com/maps/documentation/geocoding/intro), [MapQuest](http://open.mapquestapi.com/geocoding/), [Nominatim](http://open.mapquestapi.com/nominatim/), [OpenCage](http://geocoder.opencagedata.com/api.html), [HERE](https://developer.here.com/rest-apis/documentation/geocoder) and [Bing](https://msdn.microsoft.com/en-us/library/ff701715.aspx) geocoding / reverse geocoding APIs. * [ghost](https://github.com/neuegram/ghost) - Go Library for accessing the Snapchat API. * [github](https://github.com/google/go-github) - Go library for accessing the GitHub API. * [go-marathon](https://github.com/gambol99/go-marathon) - A Go library for interacting with Mesosphere's Marathon PAAS @@ -929,7 +929,7 @@ Go software and plugins. ## Code Analysis -* [doc](http://godoc.org/robpike.io/cmd/doc) - Go documentation tool that produces an alternative doc format. +* [doc](https://godoc.org/robpike.io/cmd/doc) - Go documentation tool that produces an alternative doc format. * [dupl](https://github.com/mibk/dupl) - A tool for code clone detection. * [errcheck](https://github.com/kisielk/errcheck) - Errcheck is a program for checking for unchecked errors in Go programs. * [gcvis](https://github.com/davecheney/gcvis) - Visualise Go program GC trace data in real time. @@ -977,7 +977,7 @@ Software written in Go. * [go-selfupdate](https://github.com/sanbornm/go-selfupdate) - Enable your Go applications to self update. * [gobrew](https://github.com/cryptojuice/gobrew) - gobrew lets you easily switch between multiple versions of go. * [godbg](https://github.com/sirnewton01/godbg) - Web-based gdb front-end application. -* [Gogs](http://gogs.io/) - A Self Hosted Git Service in the Go Programming Language. +* [Gogs](https://gogs.io/) - A Self Hosted Git Service in the Go Programming Language. * [gonative](https://github.com/inconshreveable/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. * [gox](https://github.com/mitchellh/gox) - A dead simple, no frills Go cross compile tool. * [goxc](https://github.com/laher/goxc) - build tool for Go, with a focus on cross-compiling and packaging. @@ -990,7 +990,7 @@ Software written in Go. * [s3gof3r](https://github.com/rlmcpherson/s3gof3r) - A small utility/library optimized for high speed transfer of large objects into and out of Amazon S3. * [Vegeta] (https://github.com/tsenart/vegeta) - HTTP load testing tool and library. It's over 9000! * [webhook](https://github.com/adnanh/webhook) - Tool which allows user to create HTTP endpoints (hooks) that execute commands on the server -* [Wide](https://wide.b3log.org) - A Web-based IDE for Teams using Golang. +* [Wide](https://wide.b3log.org/login) - A Web-based IDE for Teams using Golang. ### Other Software @@ -1006,7 +1006,7 @@ Software written in Go. * [heka](https://github.com/mozilla-services/heka) - universal tool for data processing from Mozilla. Large collection of built-in plugins. Extendable via Go and Lua plugin API. * [hsync](http://ambrevar.bitbucket.org/hsync/) - A filesystem hierarchy synchronizer * [hugo](http://gohugo.io/) - A Fast and Modern Static Website Engine -* [Juju](https://juju.ubuntu.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. +* [Juju](https://jujucharms.com/) - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more. * [limetext](http://limetext.org/) 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](https://github.com/visualfc/liteide) LiteIDE is a simple, open source, cross-platform Go IDE. * [naclpipe](https://github.com/unix4fun/naclpipe) - A simple NaCL EC25519 based crypto pipe tool written in Go. @@ -1017,10 +1017,10 @@ Software written in Go. * [restic](https://github.com/restic/restic) - De-duplicating backup program. * [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. * [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control) -* [syncthing](http://www.syncthing.net/) - An open, decentralized file synchronization tool and protocol. +* [syncthing](https://syncthing.net/) - An open, decentralized file synchronization tool and protocol. * [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. * [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. -* [tsuru](http://www.tsuru.io/) - An extensible and open source Platform as a Service software. +* [tsuru](https://tsuru.io/) - An extensible and open source Platform as a Service software. * [websysd](https://github.com/ian-kent/websysd) - Web based process manager (like Marathon or Upstart) * [wellington](https://github.com/wellington/wellington) - Sass project management tool, extends the language with sprite functions (like Compass) @@ -1050,9 +1050,9 @@ Where to discover new Go libraries. ## Conferences -* [dotGo](http://www.dotgo.io) - Paris, France +* [dotGo](http://www.dotgo.eu) - Paris, France * [GoCon](http://gocon.connpass.com/) - Tokyo, Japan -* [GolangUK](http://www.golanguk.com/) - London, UK +* [GolangUK](http://golanguk.com/) - London, UK * [GopherChina](http://gopherchina.org) - Shanghai, China * [GopherCon](http://www.gophercon.com/) - Denver, USA * [GopherCon India](http://www.gophercon.in/) - Bengaluru, India @@ -1062,12 +1062,12 @@ Where to discover new Go libraries. * [A Go Developer's Notebook](https://leanpub.com/GoNotebook/read) * [An Introduction to Programming in Go](http://www.golang-book.com/) -* [Build Web Application with Golang](http://astaxie.gitbooks.io/build-web-application-with-golang/) -* [Building Web Apps With Go](http://codegangsta.gitbooks.io/building-web-apps-with-go/) +* [Build Web Application with Golang](https://www.gitbook.com/book/astaxie/build-web-application-with-golang/details) +* [Building Web Apps With Go](https://www.gitbook.com/book/codegangsta/building-web-apps-with-go/details) * [Go Bootcamp](http://golangbootcamp.com) * [GoBooks](https://github.com/dariubs/GoBooks) - A curated list of Go books -* [Learning Go](http://www.miek.nl/downloads/Go/Learning-Go-latest.pdf) -* [Network Programming With Go](http://jan.newmarch.name/go/) +* [Learning Go](https://www.miek.nl/downloads/Go/Learning-Go-latest.pdf) +* [Network Programming With Go](https://jan.newmarch.name/go/) ## Twitter @@ -1084,11 +1084,11 @@ Where to discover new Go libraries. * [Flipboard - Go Magazine](https://flipboard.com/section/the-golang-magazine-bVP7nS) - A collection of Go articles and tutorials. * [Go Blog](http://blog.golang.org) - The official Go blog * [Go Projects](https://github.com/golang/go/wiki/Projects) - List of projects on the Go community wiki -* [godoc.org](http://godoc.org/) - Documentation for open source Go packages. +* [godoc.org](https://godoc.org/) - Documentation for open source Go packages. * [golang-graphics](https://github.com/mholt/golang-graphics) - A collection of Go images, graphics, and art * [golang-nuts](https://groups.google.com/forum/#!forum/golang-nuts) - Go mailing list * [gowalker.org](https://gowalker.org) - Go Project API documentation. -* [r/Golang](http://www.reddit.com/r/golang) - News about Go. +* [r/Golang](https://www.reddit.com/r/golang) - News about Go. * [Trending Go repositories on GitHub today](https://github.com/trending?l=go) - Good place to find new Go libraries. @@ -1102,4 +1102,4 @@ Where to discover new Go libraries. ## Windows -* [go-ole](https://github.com/mattn/go-ole) - Win32 OLE implementation for golang +* [go-ole](https://github.com/go-ole/go-ole) - Win32 OLE implementation for golang From fb8f879475aab0cbd602cc4c09359779dfd045b7 Mon Sep 17 00:00:00 2001 From: sunwxg Date: Mon, 16 Nov 2015 15:56:23 +0800 Subject: [PATCH 061/108] add golibwireshark package --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 00454f26..89f23aab 100644 --- a/README.md +++ b/README.md @@ -524,6 +524,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](http://tools.ietf.org/html/rfc959). * [go-getter](https://github.com/hashicorp/go-getter) - A Go library for downloading files or directories from various sources using a URL. * [go-stun](https://github.com/ccding/go-stun) - A go implementation of the STUN client (RFC 3489 and RFC 5389). +* [golibwireshark](https://github.com/sunwxg/golibwireshark) - Package golibwireshark use libwireshark library to decode pcap file and analyse dissection data. * [gopacket](https://github.com/google/gopacket) - A Go library for packet processing with libpcap bindings * [gopcap](https://github.com/akrennmair/gopcap) - A Go wrapper for libpcap * [goshark](https://github.com/sunwxg/goshark) - Package goshark use tshark to decode IP packet and create data struct to analyse packet. From fd68be7e9d9fbe41e0292a8d1ea666b08b3ea677 Mon Sep 17 00:00:00 2001 From: Olivier Poitrey Date: Wed, 11 Nov 2015 22:39:21 -0800 Subject: [PATCH 062/108] Add xlog in logging section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6fcebe5b..deea2d12 100644 --- a/README.md +++ b/README.md @@ -449,6 +449,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [seelog](https://github.com/cihub/seelog) - logging functionality with flexible dispatching, filtering, and formatting. * [stdlog](https://github.com/alexcesaro/log) - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs. * [tail](https://github.com/hpcloud/tail) - A Go package striving to emulate the features of the BSD tail program. +* [xlog](https://github.com/rs/xlog) - A structured logger for `net/context` aware HTTP handlers with flexible dispatching. ## Machine Learning From fdfa2870add626d71226e6b1d040b2d714606960 Mon Sep 17 00:00:00 2001 From: Greg Osuri Date: Mon, 16 Nov 2015 11:33:20 -0800 Subject: [PATCH 063/108] Added uitable to Advanced Console UIs --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index deea2d12..e32ff33c 100644 --- a/README.md +++ b/README.md @@ -144,6 +144,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. * [termtables](https://github.com/apcera/termtables) - A Go port of the Ruby library [terminal-tables](https://github.com/tj/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output * [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). +* [uitable](https://github.com/gosuri/uitable) - A library to improve readability in terminal apps using tabular data. ## Configuration From 1728681eda1734e332bcbcd9c3ff411227bea6a4 Mon Sep 17 00:00:00 2001 From: joeybloggs Date: Tue, 17 Nov 2015 17:45:41 -0500 Subject: [PATCH 064/108] Add Category Goroutines + add some packages Added the following: * [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool. * [pool](https://github.com/go-playground/pool) - Go consumer goroutine pool for easy goroutine handling + time saving. * [tunny](https://github.com/Jeffail/tunny) - A goroutine pool for golang. * [statics](https://github.com/go-playground/statics) - Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks. * [generate](https://github.com/go-playground/generate) - runs go generate recursively on a specified path or environment variable and can filter by regex. * [stats](https://github.com/go-playground/stats) - Monitors Go MemStats + System stats such as Memory, Swap and CPU and sends via UDP anywhere you want for logging etc... --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index deea2d12..e21a2475 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a - [Game Development](#game-development) - [Generation & Generics](#generation--generics) - [Go Compilers](#go-compilers) + - [Goroutines](#goroutines) - [GUI](#gui) - [Hardware](#hardware) - [Images](#images) @@ -385,6 +386,15 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [tardisgo](https://github.com/tardisgo/tardisgo) - Golang to Haxe to CPP/CSharp/Java/JavaScript transpiler. +## Goroutines + +*Tools for managing and working with Goroutines* + +* [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool. +* [pool](https://github.com/go-playground/pool) - Go consumer goroutine pool for easy goroutine handling + time saving. +* [tunny](https://github.com/Jeffail/tunny) - A goroutine pool for golang. + + ## GUI *Libraries for building GUI Applications* @@ -504,6 +514,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gosms](https://github.com/haxpax/gosms) - Your own local SMS gateway in Go that can be used to send SMS * [jobs](https://github.com/albrow/jobs) - A persistent and flexible background jobs library. * [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal. +* [stats](https://github.com/go-playground/stats) - Monitors Go MemStats + System stats such as Memory, Swap and CPU and sends via UDP anywhere you want for logging etc... * [xkg](https://github.com/go-xkg/xkg) - X Keyboard Grabber * [xstrings](https://github.com/huandu/xstrings) - A collection of useful string functions ported from other languages. @@ -603,6 +614,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-bindata](https://github.com/jteeuwen/go-bindata) - Package that converts any file into managable Go source code. * [go-resources](https://github.com/omeid/go-resources) - Unfancy resources embedding with Go. * [go.rice](https://github.com/GeertJohan/go.rice) - go.rice is a Go package that makes working with resources such as html,js,css,images and templates very easy. +* [statics](https://github.com/go-playground/statics) - Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks. * [vfsgen](https://github.com/shurcooL/vfsgen) - Generates a vfsdata.go file that statically implements the given virtual filesystem. @@ -790,6 +802,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [delve](https://github.com/derekparker/delve) - Go debugger. * [fastlz](https://github.com/fromYukki/fastlz) - Wrap over [FastLz](http://fastlz.org/) (free, open-source, portable real-time compression library) for GoLang. * [filetype](https://github.com/h2non/filetype) - Small package to infer the file type checking the magic numbers signature. +* [generate](https://github.com/go-playground/generate) - runs go generate recursively on a specified path or environment variable and can filter by regex. * [go-cron](https://github.com/rk/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. * [go-debug](https://github.com/tj/go-debug) - Conditional debug logging for Golang libraries & applications * [go-dry](https://github.com/ungerik/go-dry) - DRY (don't repeat yourself) package for Go. From 23b92bb499924bdc8e056e7ca02b5fd6fb39707c Mon Sep 17 00:00:00 2001 From: Ilya Kowalewski Date: Wed, 18 Nov 2015 18:23:41 +0200 Subject: [PATCH 065/108] Added some public libraries of mine https://github.com/tucnak/climax https://github.com/tucnak/store --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index deea2d12..fa16c41c 100644 --- a/README.md +++ b/README.md @@ -122,6 +122,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for building standard or basic Command Line applications* * [cli-init](https://github.com/tcnksm/gcli) - The easy way to start building Golang command line application. +* [climax](http://github.com/tucnak/climax) - An alternative CLI with "human face", in spirit of Go command * [cobra](https://github.com/spf13/cobra) - A Commander for modern Go CLI interactions * [codegangsta/cli](https://github.com/codegangsta/cli) - A small package for building command line apps in Go. * [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser @@ -159,6 +160,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gofigure](https://github.com/ian-kent/gofigure) - Go application configuration made easy * [ini](https://github.com/go-ini/ini) - Go package for read and write INI files * [mini](https://github.com/FogCreek/mini) - A golang package for parsing ini-style configuration files +* [store](https://github.com/tucnak/store) - A lightweight configuration manager for Go * [viper](https://github.com/spf13/viper) - Go configuration with fangs ## Continuous Integration From cf3c86b22837153383e8ac7a362314d22a84c491 Mon Sep 17 00:00:00 2001 From: Jianwei Han Date: Thu, 19 Nov 2015 12:03:27 +0800 Subject: [PATCH 066/108] Add goreturns to code analysis section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index deea2d12..fbf8bf82 100644 --- a/README.md +++ b/README.md @@ -942,6 +942,7 @@ Go software and plugins. * [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) - Tool to fix (add, remove) your Go imports automatically. * [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. * [Golint online](http://go-lint.appspot.com/) - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package. +* [goreturns](https://github.com/sqs/goreturns) - Adds zero-value return statements to match the func return types. * [gostatus](https://github.com/shurcooL/gostatus) - A command line tool, shows the status of repositories that contain Go packages. * [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. From 2662efbe5c162ae8d9db189a8da2c3b3944d169c Mon Sep 17 00:00:00 2001 From: Jianwei Han Date: Thu, 19 Nov 2015 14:42:19 +0800 Subject: [PATCH 067/108] Fix goreturns URL --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fbf8bf82..63575ecb 100644 --- a/README.md +++ b/README.md @@ -942,7 +942,7 @@ Go software and plugins. * [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) - Tool to fix (add, remove) your Go imports automatically. * [GoLint](https://github.com/golang/lint) - Golint is a linter for Go source code. * [Golint online](http://go-lint.appspot.com/) - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package. -* [goreturns](https://github.com/sqs/goreturns) - Adds zero-value return statements to match the func return types. +* [goreturns](https://sourcegraph.com/sqs/goreturns) - Adds zero-value return statements to match the func return types. * [gostatus](https://github.com/shurcooL/gostatus) - A command line tool, shows the status of repositories that contain Go packages. * [validate](https://github.com/mccoyst/validate) - Automatically validates struct fields with tags. From b518045bec160d02d708ef84ec9065bcaff2ac0c Mon Sep 17 00:00:00 2001 From: Hugo Landau Date: Thu, 19 Nov 2015 16:26:29 +0000 Subject: [PATCH 068/108] Add hlandau/passlib --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 63575ecb..26109dc4 100644 --- a/README.md +++ b/README.md @@ -639,6 +639,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [BadActor](https://github.com/jaredfolkins/badactor) - An in-memory, application-driven jailer built in the spirit of fail2ban * [go-yara](https://github.com/hillu/go-yara) - Go Bindings for [YARA](https://github.com/plusvic/yara), the "pattern matching swiss knife for malware researchers (and everyone else)" +* [passlib](https://github.com/hlandau/passlib) - Futureproof password hashing library. ## Serialization From 87f112c7ef2d527077b54c5085c7227b784442d7 Mon Sep 17 00:00:00 2001 From: AJ Bahnken Date: Thu, 19 Nov 2015 09:46:12 -0800 Subject: [PATCH 069/108] Added Kala to Other Software --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 63575ecb..c20377bc 100644 --- a/README.md +++ b/README.md @@ -987,6 +987,7 @@ Software written in Go. * [goxc](https://github.com/laher/goxc) - build tool for Go, with a focus on cross-compiling and packaging. * [GVM](https://github.com/moovweb/gvm) - GVM provides an interface to manage Go versions. * [hk](https://github.com/heroku/hk) - Heroku command-line interface in Go. +* [kala](https://github.com/ajvb/kala) - Simplistic, modern, and performant job scheduler. * [Mora](https://github.com/emicklei/mora) - REST server for accessing MongoDB documents and meta data. * [ostent](https://github.com/ostrost/ostent) - collects and displays system metrics and optionally relays to Graphite and/or InfluxDB * [Packer](https://github.com/mitchellh/packer) - Packer is a tool for creating identical machine images for multiple platforms from a single source configuration. From 9a3a0a23ba259f2f1c63f52e15f0c94f526170c1 Mon Sep 17 00:00:00 2001 From: Tatsuo Ikeda Date: Fri, 20 Nov 2015 02:57:33 +0900 Subject: [PATCH 070/108] Added go-sitemap-generator --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 63575ecb..d034c7b5 100644 --- a/README.md +++ b/README.md @@ -828,6 +828,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics * [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. +* [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. * [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. * [spinner](https://github.com/briandowns/spinner) - Go package to easily provide a terminal spinner with options. * [sqlx](https://github.com/jmoiron/sqlx) - provides a set of extensions on top of the excellent built-in database/sql package From 23823a977d08ae4af1b3493bddd3fa5fa1bff68f Mon Sep 17 00:00:00 2001 From: Arthur White Date: Fri, 20 Nov 2015 15:48:07 +0100 Subject: [PATCH 071/108] Add Volatile --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 63575ecb..65208e73 100644 --- a/README.md +++ b/README.md @@ -899,6 +899,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [tango](https://github.com/lunny/tango) - Micro & pluggable web framework for Go. * [tigertonic](https://github.com/rcrowley/go-tigertonic) - A Go framework for building JSON web services inspired by Dropwizard * [traffic](https://github.com/pilu/traffic) - Sinatra inspired regexp/pattern mux and web framework for Go. +* [Volatile](https://github.com/volatile/core) - Minimalist middleware stack promoting flexibility, good practices and clean code. * [web.go](https://github.com/hoisie/web) - A simple framework to write webapps in Go. * [Zerver](https://github.com/cosiner/zerver) - Zerver is a expressive, modular, feature completed RESTful framework. * [zeus](https://github.com/daryl/zeus) - A very simple and fast HTTP router for Go. From 44d559f25e9bdcf0fcd599bc0633f721cf23190d Mon Sep 17 00:00:00 2001 From: Levi Gross Date: Sat, 21 Nov 2015 22:35:53 -0500 Subject: [PATCH 072/108] Adding grequests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adding grequests – An elegant and simple `net/http` wrapper that follows Python's requests library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e238c9e9..5f8be2a7 100644 --- a/README.md +++ b/README.md @@ -825,6 +825,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goreq](https://github.com/smallnest/goreq) - An enhanced simplified HTTP client based on gorequest. * [gorequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features for Go. * [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go +* [grequests](https://github.com/levigross/grequests) - An elegant and simple `net/http` wrapper that follows Python's requests library * [htcat](https://github.com/htcat/htcat) - Parallel and Pipelined HTTP GET Utility * [httpcontrol](https://github.com/facebookgo/httpcontrol) - Package httpcontrol allows for HTTP transport level control around timeouts and retries. * [hystrix-go](https://github.com/afex/hystrix-go) - Imprements Hystrix patterns of programmer-defined fallbacks aka circuit breaker. From 0a23ca7b14d79a602918f9e3355150cf60719e71 Mon Sep 17 00:00:00 2001 From: Tatsuo Ikeda Date: Mon, 23 Nov 2015 02:36:10 +0900 Subject: [PATCH 073/108] Fix additional package sorted alphabetically. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d034c7b5..95428411 100644 --- a/README.md +++ b/README.md @@ -794,6 +794,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-debug](https://github.com/tj/go-debug) - Conditional debug logging for Golang libraries & applications * [go-dry](https://github.com/ungerik/go-dry) - DRY (don't repeat yourself) package for Go. * [go-rate](https://github.com/beefsack/go-rate) - A timed rate limiter for Go +* [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. * [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with a id and trigger the event from anywhere from your project. * [go-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities. * [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. @@ -828,7 +829,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [request](https://github.com/mozillazg/request) - Go HTTP Requests for Humans™. * [robustly](https://github.com/VividCortex/robustly) - Runs functions resiliently, catching and restarting panics * [scheduler](https://github.com/carlescere/scheduler) - Cronjobs scheduling made easy. -* [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. * [sling](https://github.com/dghubble/sling) - Go HTTP requests builder for API clients. * [spinner](https://github.com/briandowns/spinner) - Go package to easily provide a terminal spinner with options. * [sqlx](https://github.com/jmoiron/sqlx) - provides a set of extensions on top of the excellent built-in database/sql package From a51a3d4f9f91d1f42f3e5dad4832cbc1937daa1c Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Sun, 22 Nov 2015 20:55:21 -0800 Subject: [PATCH 074/108] Add trayhost package to GUI section. Package trayhost is a cross-platform Go library to place an icon in the host operating system's taskbar. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5f8be2a7..c090f939 100644 --- a/README.md +++ b/README.md @@ -408,6 +408,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gotk3](https://github.com/gotk3/gotk3) - Go bindings for GTK3. * [gxui](https://github.com/google/gxui) - A Go cross platform UI library. * [sciter](https://github.com/oskca/sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. +* [trayhost](https://github.com/shurcooL/trayhost) - Cross-platform Go library to place an icon in the host operating system's taskbar. * [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. * [walk](https://github.com/lxn/walk) - Windows application library kit for Go. From 157c52966957b90aeab1da59beb83a5048b7a73f Mon Sep 17 00:00:00 2001 From: Peter Kieltyka Date: Mon, 23 Nov 2015 09:42:09 -0500 Subject: [PATCH 075/108] Add chi project to Web Frameworks --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5f8be2a7..958a73a9 100644 --- a/README.md +++ b/README.md @@ -886,6 +886,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Beego](https://github.com/astaxie/beego) - beego is an open-source, high-performance web framework for the Go programming language. * [Bone](https://github.com/go-zoo/bone) - Lightning Fast HTTP Multiplexer. +* [chi](https://github.com/pressly/chi) - Small, fast and expressive HTTP router built on net/context. * [Echo](https://github.com/labstack/echo) - A fast HTTP router (zero memory allocation) and micro web framework in Go. * [Gin](https://github.com/gin-gonic/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. * [Glue](https://github.com/desertbit/glue) - Robust Go and Javascript Socket Library (Alternative to Socket.io) From 2ac4fef32b52319d674866950f82d59dfeab1547 Mon Sep 17 00:00:00 2001 From: Louis Maddox Date: Mon, 23 Nov 2015 17:01:16 +0000 Subject: [PATCH 076/108] Add valyala/fasthttp --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5f8be2a7..5aedfce7 100644 --- a/README.md +++ b/README.md @@ -551,6 +551,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [dhcp6](https://github.com/mdlayher/dhcp6) - Package dhcp6 implements a DHCPv6 server, as described in RFC 3315. * [dns](https://github.com/miekg/dns) - Go library for working with DNS * [ethernet](https://github.com/mdlayher/ethernet) - Package ethernet implements marshaling and unmarshaling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags. +* [fasthttp](https://github.com/valyala/fasthttp) - Package fasthttp is a fast HTTP implementation for Go, up to 10 times faster than net/http * [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](http://tools.ietf.org/html/rfc959). * [go-getter](https://github.com/hashicorp/go-getter) - A Go library for downloading files or directories from various sources using a URL. * [go-stun](https://github.com/ccding/go-stun) - A go implementation of the STUN client (RFC 3489 and RFC 5389). From 1706b36fa3c5fd95e97d5e929302276605ab8ea8 Mon Sep 17 00:00:00 2001 From: Eric Bower Date: Tue, 24 Nov 2015 14:35:11 -0500 Subject: [PATCH 077/108] sentences package --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5f8be2a7..081c5d92 100644 --- a/README.md +++ b/README.md @@ -536,6 +536,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [paicehusk](https://github.com/rookii/paicehusk) - Golang implementation of the Paice/Husk Stemming Algorithm * [porter](https://github.com/a2800276/porter) - This is a fairly straighforward port of Martin Porter's C implementation of the Porter stemming algorithm. * [porter2](https://github.com/zhenjl/porter2) - Really fast Porter 2 stemmer. +* [sentences](https://github.com/neurosnap/sentences) - A sentence tokenizer: converts text into a list of sentences. * [segment](https://github.com/blevesearch/segment) - A Go library for performing Unicode Text Segmentation as described in [Unicode Standard Annex #29](http://www.unicode.org/reports/tr29/) * [snowball](https://github.com/goodsign/snowball) - Snowball stemmer port (cgo wrapper) for Go. Provides word stem extraction functionality [Snowball native](http://snowball.tartarus.org/). * [stemmer](https://github.com/dchest/stemmer) - Stemmer packages for Go programming language. Includes English and German stemmers. From 8c1335c0d31176d404b90e61da47d1a0ef3a6689 Mon Sep 17 00:00:00 2001 From: Greg Osuri Date: Tue, 24 Nov 2015 16:35:06 -0800 Subject: [PATCH 078/108] Added uiprogress to Advanced Console UIs --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5f8be2a7..b71a7455 100644 --- a/README.md +++ b/README.md @@ -146,6 +146,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. * [termtables](https://github.com/apcera/termtables) - A Go port of the Ruby library [terminal-tables](https://github.com/tj/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output * [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). +* [uiprogress](https://github.com/gosuri/uiprogress) - A flexible library to render progress bars in terminal applications. * [uitable](https://github.com/gosuri/uitable) - A library to improve readability in terminal apps using tabular data. From d4f8e9046540f333b8335a42798504aa15f4d1f4 Mon Sep 17 00:00:00 2001 From: Alex Banks Date: Tue, 24 Nov 2015 20:27:44 -0800 Subject: [PATCH 079/108] Added The Go Programming Language by Donovan and Kernighan. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5f8be2a7..f6430df6 100644 --- a/README.md +++ b/README.md @@ -1092,7 +1092,7 @@ Where to discover new Go libraries. * [GoBooks](https://github.com/dariubs/GoBooks) - A curated list of Go books * [Learning Go](https://www.miek.nl/downloads/Go/Learning-Go-latest.pdf) * [Network Programming With Go](https://jan.newmarch.name/go/) - +* [The Go Programming Language](http://www.gopl.io/) ## Twitter From 511767f5c3ff96809fa7a8819168039921da87ff Mon Sep 17 00:00:00 2001 From: Eric Bower Date: Fri, 27 Nov 2015 03:33:08 -0500 Subject: [PATCH 080/108] apparently alaphetical order is beyond my capabilities --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 081c5d92..5a8b41d9 100644 --- a/README.md +++ b/README.md @@ -536,8 +536,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [paicehusk](https://github.com/rookii/paicehusk) - Golang implementation of the Paice/Husk Stemming Algorithm * [porter](https://github.com/a2800276/porter) - This is a fairly straighforward port of Martin Porter's C implementation of the Porter stemming algorithm. * [porter2](https://github.com/zhenjl/porter2) - Really fast Porter 2 stemmer. -* [sentences](https://github.com/neurosnap/sentences) - A sentence tokenizer: converts text into a list of sentences. * [segment](https://github.com/blevesearch/segment) - A Go library for performing Unicode Text Segmentation as described in [Unicode Standard Annex #29](http://www.unicode.org/reports/tr29/) +* [sentences](https://github.com/neurosnap/sentences) - A sentence tokenizer: converts text into a list of sentences. * [snowball](https://github.com/goodsign/snowball) - Snowball stemmer port (cgo wrapper) for Go. Provides word stem extraction functionality [Snowball native](http://snowball.tartarus.org/). * [stemmer](https://github.com/dchest/stemmer) - Stemmer packages for Go programming language. Includes English and German stemmers. * [textcat](https://github.com/pebbe/textcat) - A Go package for n-gram based text categorization, with support for utf-8 and raw text From c6ea2379a0bd26c446d6da494e966b2adeb2e49e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20K=C3=BChl?= Date: Fri, 27 Nov 2015 17:31:04 +0100 Subject: [PATCH 081/108] Add rkt - An App Container runtime --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f6430df6..d5a226d1 100644 --- a/README.md +++ b/README.md @@ -1039,6 +1039,7 @@ Software written in Go. * [peg](https://github.com/pointlander/peg) - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. * [Postman](https://github.com/zachlatta/postman) - Command-line utility for batch-sending email. * [restic](https://github.com/restic/restic) - De-duplicating backup program. +* [rkt](https://github.com/coreos/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. * [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. * [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control) * [syncthing](https://syncthing.net/) - An open, decentralized file synchronization tool and protocol. From 09a16a2a82c8bf29d41ef9d12d5a56a89e1528d2 Mon Sep 17 00:00:00 2001 From: Gleb Sinyavsky Date: Sun, 29 Nov 2015 13:31:14 +0300 Subject: [PATCH 082/108] Update README.md telegram-bot-api add --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 554134c4..35252984 100644 --- a/README.md +++ b/README.md @@ -794,6 +794,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [steam](https://github.com/sostronk/go-steam) - Go Library to interact with Steam game servers. * [stripe](https://github.com/stripe/stripe-go) - Go client for the Stripe API * [telebot](https://github.com/tucnak/telebot) - Telegram bot framework written in Go. +* [telegram-bot-api](https://github.com/Syfaro/telegram-bot-api) - Simple and clean Telegram bot client. * [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - A simple golang package to communicate with [themoviedb.org](https://themoviedb.org) * [translate](https://github.com/poorny/translate) - Go online translation package * [tumblr](https://github.com/mattcunningham/gumblr) - Go wrapper for the Tumblr v2 API. From 82ca4f561e1702de255149dbe233f36752b29a55 Mon Sep 17 00:00:00 2001 From: 1175498437 <1175498437@users.noreply.github.com> Date: Mon, 30 Nov 2015 09:41:39 +0800 Subject: [PATCH 083/108] add redeo project --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ddaf4e6e..0d5272fe 100644 --- a/README.md +++ b/README.md @@ -276,6 +276,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [redigo](https://github.com/garyburd/redigo) - Redigo is a Go client for the Redis database. * [redis](https://github.com/go-redis/redis) - Redis client for Golang * [redis](https://github.com/hoisie/redis) - A simple, powerful Redis client for Go. + * [redis](https://github.com/bsm/redeo) - Redis-protocol compatible TCP servers/services. * Search and Analytic Databases * [bleve](https://github.com/blevesearch/bleve) - A modern text indexing library for go. From f557e617c904d77d4dad07e3d5b9129069cace36 Mon Sep 17 00:00:00 2001 From: Eduardo Nunes Pereira Date: Mon, 30 Nov 2015 18:08:17 -0200 Subject: [PATCH 084/108] Added Stack Up https://github.com/pressly/sup * Fix SSLB Alphabetical --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d388bd3c..4f217768 100644 --- a/README.md +++ b/README.md @@ -570,9 +570,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [portproxy](https://github.com/aybabtme/portproxy) - Simple TCP proxy which adds CORS support to API's which don't support it. * [raw](https://github.com/mdlayher/raw) - Package raw enables reading and writing data at the device driver level for a network interface. * [sftp](https://github.com/pkg/sftp) - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt. +* [sslb](https://github.com/eduardonunesp/sslb) - It's a Super Simples Load Balancer, just a little project to achieve some kind of performance. * [tcp_server](https://github.com/firstrow/tcp_server) - A Go library for building tcp servers faster. * [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. -* [sslb](https://github.com/eduardonunesp/sslb) - It's a Super Simples Load Balancer, just a little project to achieve some kind of performance. ## OpenGL @@ -1049,6 +1049,7 @@ Software written in Go. * [rkt](https://github.com/coreos/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. * [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. * [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control) +* [Stack Up](https://github.com/pressly/sup) - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers. * [syncthing](https://syncthing.net/) - An open, decentralized file synchronization tool and protocol. * [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. * [toxiproxy](https://github.com/shopify/toxiproxy) - Proxy to simulate network and system conditions for automated tests. From 5ae89fc052a42f9dacdbd101a6be1f38c3d0910b Mon Sep 17 00:00:00 2001 From: Harrison Shoebridge Date: Tue, 1 Dec 2015 17:53:41 +1100 Subject: [PATCH 085/108] Add configure --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4f217768..819f5bd7 100644 --- a/README.md +++ b/README.md @@ -155,6 +155,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for configuration parsing* * [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing. +* [configure](https://github.com/paked/configure) - Provides configuration through multiple sources, including JSON, flags and environment variables. * [env](https://github.com/caarlos0/env) - Parse environment variables to Go structs (with defaults). * [envcfg](https://github.com/tomazk/envcfg) - Un-marshaling environment variables to Go structs. * [envconf](https://github.com/ian-kent/envconf) - Configuration from environment From d6221d4a018aac0ca13c8565a4e99574ca2f229b Mon Sep 17 00:00:00 2001 From: Harrison Shoebridge Date: Tue, 1 Dec 2015 17:56:00 +1100 Subject: [PATCH 086/108] Add engi --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4f217768..7d10c726 100644 --- a/README.md +++ b/README.md @@ -361,6 +361,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Awesome game development libraries.* +* [engi](https://github.com/paked/engi) - A cross-platform game engine following the Entity Component System design pattern * [GarageEngine](https://github.com/vova616/GarageEngine) - 2d game engine written in Go working on OpenGL. * [glop](https://github.com/runningwild/glop) - Glop (Game Library Of Power) is a fairly simple cross-platform game library. * [go-astar](https://github.com/beefsack/go-astar) - Go implementation of the A* path finding algorithm From e4b453b4fcccaafe3347f18f76c71c4632431161 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dobros=C5=82aw=20=C5=BBybort?= Date: Tue, 1 Dec 2015 15:44:37 +0100 Subject: [PATCH 087/108] Add github.com/feyeleanor/GoSpeed to benchmarks --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 84f1f0cb..aa1c8d02 100644 --- a/README.md +++ b/README.md @@ -1079,6 +1079,7 @@ Where to discover new Go libraries. * [gocostmodel](https://github.com/PuerkitoBio/gocostmodel) - Benchmarks of common basic operations for the Go language. * [golang-micro-benchmarks](https://github.com/amscanne/golang-micro-benchmarks) - Tiny collection of Go micro benchmarks. The intent is to compare some language features to others. * [golang-sql-benchmark](https://github.com/tyler-smith/golang-sql-benchmark) - A collection of benchmarks for popular Go database/SQL utilities. +* [gospeed](https://github.com/feyeleanor/GoSpeed) - Go micro-benchmarks for calculating the speed of language constructs. * [kvbench](https://github.com/jimrobinson/kvbench) - Key/Value database benchmark. * [speedtest-resize](https://github.com/fawick/speedtest-resize) - Compare various Image resize algorithms for the Go language. From 1e0254ed96cc11cdb515f8228a9afbf66c5203a0 Mon Sep 17 00:00:00 2001 From: Adriano Orioli Date: Tue, 1 Dec 2015 17:14:17 +0100 Subject: [PATCH 088/108] add gcm to Third-party APIs --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ddaf4e6e..d4f7f57d 100644 --- a/README.md +++ b/README.md @@ -775,6 +775,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [facebook](https://github.com/huandu/facebook) - Go Library that supports the Facebook Graph API * [gads](https://github.com/emiddleton/gads) - Google Adwords Unofficial API * [gami](https://github.com/bit4bit/gami) - Go library for Asterisk Manager Interface. +* [gcm](https://github.com/Aorioli/gcm) - Go library for Google Cloud Messaging * [geo-golang](https://github.com/codingsince1985/geo-golang) - Go Library to access [Google Maps](https://developers.google.com/maps/documentation/geocoding/intro), [MapQuest](http://open.mapquestapi.com/geocoding/), [Nominatim](http://open.mapquestapi.com/nominatim/), [OpenCage](http://geocoder.opencagedata.com/api.html), [HERE](https://developer.here.com/rest-apis/documentation/geocoder) and [Bing](https://msdn.microsoft.com/en-us/library/ff701715.aspx) geocoding / reverse geocoding APIs. * [ghost](https://github.com/neuegram/ghost) - Go Library for accessing the Snapchat API. * [github](https://github.com/google/go-github) - Go library for accessing the GitHub API. From 311ef754ff30190b42d6334467bf1f2a3d7cf714 Mon Sep 17 00:00:00 2001 From: Matt Holt Date: Wed, 2 Dec 2015 22:57:06 -0700 Subject: [PATCH 089/108] Add lego ACME client library and CLI tool --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 84f1f0cb..59130219 100644 --- a/README.md +++ b/README.md @@ -661,6 +661,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [BadActor](https://github.com/jaredfolkins/badactor) - An in-memory, application-driven jailer built in the spirit of fail2ban * [go-yara](https://github.com/hillu/go-yara) - Go Bindings for [YARA](https://github.com/plusvic/yara), the "pattern matching swiss knife for malware researchers (and everyone else)" +* [lego](https://github.com/xenolf/lego) - Pure Go ACME client library and CLI tool (for use with Let's Encrypt) * [passlib](https://github.com/hlandau/passlib) - Futureproof password hashing library. ## Serialization From bd25c126f546feaf7d52cb8a3fad6b35e3d18161 Mon Sep 17 00:00:00 2001 From: Christopher McKenzie Date: Wed, 2 Dec 2015 22:55:28 -0800 Subject: [PATCH 090/108] Add Dropship --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 59130219..a051de58 100644 --- a/README.md +++ b/README.md @@ -1005,6 +1005,7 @@ Software written in Go. * [awsenv](https://github.com/soniah/awsenv) - a small binary that loads Amazon (AWS) environment variables for a profile * [Boom](https://github.com/rakyll/boom) - Boom is a tiny program that sends some load to a web application. * [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart). +* [Dropship](https://github.com/chrismckenzie/dropship) - A tool for deploying code via cdn. * [EasySSH](https://github.com/hypersleep/easyssh) - Golang package for easy remote execution through SSH and SCP downloading. * [Go Metrics](https://github.com/rcrowley/go-metrics) - Go port of Coda Hale's Metrics library: https://github.com/codahale/metrics. * [go-selfupdate](https://github.com/sanbornm/go-selfupdate) - Enable your Go applications to self update. From 88bc5174d6657402f761ee797a7ceac555b65b3f Mon Sep 17 00:00:00 2001 From: Patrick D Date: Thu, 3 Dec 2015 12:37:49 +0100 Subject: [PATCH 091/108] add devd - a local webserver for developers --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 59130219..340be57e 100644 --- a/README.md +++ b/README.md @@ -682,6 +682,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [algernon](https://github.com/xyproto/algernon) - HTTP/2 web server with built-in support for Lua, Markdown, GCSS and Amber. * [Caddy](https://github.com/mholt/caddy) - Caddy is an alternative, HTTP/2 web server that's easy to configure and use. +* [devd](https://github.com/cortesi/devd) - A local webserver for developers * [etcd](https://github.com/coreos/etcd) - A highly-available key value store for shared configuration and service discovery. * [nsq](http://nsq.io/) - A realtime distributed messaging platform * [yakvs](https://github.com/sci4me/yakvs) - A small, networked, in-memory key-value store. From d8ae9bc793b28e250a3772a7b72756f579012876 Mon Sep 17 00:00:00 2001 From: Sajjad Hasehmian Date: Fri, 4 Dec 2015 13:12:00 +0330 Subject: [PATCH 092/108] add systray to gui section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 59130219..8411e672 100644 --- a/README.md +++ b/README.md @@ -411,6 +411,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gotk3](https://github.com/gotk3/gotk3) - Go bindings for GTK3. * [gxui](https://github.com/google/gxui) - A Go cross platform UI library. * [sciter](https://github.com/oskca/sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. +* [systray](https://github.com/getlantern/systray) - Cross platfrom Go library to place an icon and menu in the notification area * [trayhost](https://github.com/shurcooL/trayhost) - Cross-platform Go library to place an icon in the host operating system's taskbar. * [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. * [walk](https://github.com/lxn/walk) - Windows application library kit for Go. From 29f2663dea6ee6baa9da83f96ef76d9c8d02617c Mon Sep 17 00:00:00 2001 From: Tony Pierce Date: Fri, 4 Dec 2015 17:47:32 -0800 Subject: [PATCH 093/108] Removed gxui from GUI section. Library is not being maintained (according to github page) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 59130219..ec0a1531 100644 --- a/README.md +++ b/README.md @@ -409,7 +409,6 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-qml](https://github.com/go-qml/qml) - QML support for the Go language * [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go. * [gotk3](https://github.com/gotk3/gotk3) - Go bindings for GTK3. -* [gxui](https://github.com/google/gxui) - A Go cross platform UI library. * [sciter](https://github.com/oskca/sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. * [trayhost](https://github.com/shurcooL/trayhost) - Cross-platform Go library to place an icon in the host operating system's taskbar. * [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. From 9e51c2d66c8b469acd749b39522d8346c928c216 Mon Sep 17 00:00:00 2001 From: Greg Osuri Date: Sun, 6 Dec 2015 12:12:12 -0800 Subject: [PATCH 094/108] Added uilive to Advanced Console UIs --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1379fcd9..7dd6efc4 100644 --- a/README.md +++ b/README.md @@ -146,6 +146,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces. * [termtables](https://github.com/apcera/termtables) - A Go port of the Ruby library [terminal-tables](https://github.com/tj/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output * [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). +* [uilive](https://github.com/gosuri/uilive) - A library for updating terminal output in realtime. * [uiprogress](https://github.com/gosuri/uiprogress) - A flexible library to render progress bars in terminal applications. * [uitable](https://github.com/gosuri/uitable) - A library to improve readability in terminal apps using tabular data. From 4915b2972149b2024cc4a35d454b0ca6b7e95f9f Mon Sep 17 00:00:00 2001 From: George Lestaris Date: Mon, 7 Dec 2015 19:09:33 +0000 Subject: [PATCH 095/108] Add gomega - an rspec-like assertion library --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1379fcd9..9e187ab2 100644 --- a/README.md +++ b/README.md @@ -719,6 +719,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gocheck](http://labix.org/gocheck) - A more advanced testing framework alternative to gotest. * [GoConvey](https://github.com/smartystreets/goconvey/) - BDD-style framework with web UI and live reload * [godog](https://github.com/DATA-DOG/godog) - Cucumber or Behat like BDD framework for Go. + * [gomega](http://onsi.github.io/gomega/) - Rspec like matcher/assertion library. * [GoSpec](https://github.com/orfjackal/gospec) - BDD-style testing framework for the Go programming language. * [gospecify](https://github.com/stesla/gospecify) - This provides a BDD syntax for testing your Go code. It should be familiar to anybody who has used libraries such as rspec. * [Hamcrest](https://github.com/rdrdr/hamcrest) - fluent framework for declarative Matcher objects that, when applied to input values, produce self-describing results. From 19b2c2228d4a5704cd7ab6b17ef907348cd1df77 Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Wed, 9 Dec 2015 02:06:56 -0800 Subject: [PATCH 096/108] Remove Martini. According to https://github.com/go-martini/martini/commit/15a47622d6a9b3e6a1eaca2681e4850f612471ea: > The martini framework is no longer maintained. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 9e187ab2..01a503f7 100644 --- a/README.md +++ b/README.md @@ -917,7 +917,6 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [httptreemux](https://github.com/dimfeld/httptreemux) - High-speed, flexible tree-based HTTP router for Go.Inspiration from httprouter * [Macaron](https://github.com/Unknwon/macaron) - Macaron is a high productive and modular design web framework in Go. * [mango](https://github.com/paulbellamy/mango) - Mango is a modular web-application framework for Go, inspired by Rack, and PEP333. -* [Martini](https://github.com/go-martini/martini) - Martini is a powerful package for quickly writing modular web applications/services in Golang. * [medeina](https://github.com/imdario/medeina) - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba. * [mux](https://github.com/gorilla/mux) - A powerful URL router and dispatcher for golang. * [neo](https://github.com/ivpusic/neo) - Neo is minimal and fast Go Web Framework with extremely simple API. From aa74b9c0c071d899a7d58643a939301f8c6090d2 Mon Sep 17 00:00:00 2001 From: Patrick D Date: Wed, 9 Dec 2015 19:57:46 +0100 Subject: [PATCH 097/108] add snap - a powerful telemetry framework added it to 'other software' , but i don't know if this is the correct place/section for snap - other suggesstions are welcome --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e9af99ee..4dc0aea8 100644 --- a/README.md +++ b/README.md @@ -1060,6 +1060,7 @@ Software written in Go. * [rkt](https://github.com/coreos/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. * [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. * [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control) +* [snap](github.com/intelsdi-x/snap) - A powerful telemetry framework * [Stack Up](https://github.com/pressly/sup) - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers. * [syncthing](https://syncthing.net/) - An open, decentralized file synchronization tool and protocol. * [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. From 41eba9cacabe712c8acbaadd0aabe79a410de622 Mon Sep 17 00:00:00 2001 From: Patrick D Date: Wed, 9 Dec 2015 21:35:24 +0100 Subject: [PATCH 098/108] fixed broken link to snap --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4dc0aea8..42c655bb 100644 --- a/README.md +++ b/README.md @@ -1060,7 +1060,7 @@ Software written in Go. * [rkt](https://github.com/coreos/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. * [Seaweed File System](https://github.com/chrislusf/seaweedfs) - Fast, Simple and Scalable Distributed File System with O(1) disk seek. * [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via http server (for prototyping or remote control) -* [snap](github.com/intelsdi-x/snap) - A powerful telemetry framework +* [snap](https://github.com/intelsdi-x/snap) - A powerful telemetry framework * [Stack Up](https://github.com/pressly/sup) - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers. * [syncthing](https://syncthing.net/) - An open, decentralized file synchronization tool and protocol. * [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging. From 4d7bb537cfd8058eb751512d9525eaf89f837435 Mon Sep 17 00:00:00 2001 From: Yann Coleu Date: Thu, 10 Dec 2015 11:19:54 +0100 Subject: [PATCH 099/108] Add consul tool, official website --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 27bb5629..8bddec75 100644 --- a/README.md +++ b/README.md @@ -696,6 +696,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [algernon](https://github.com/xyproto/algernon) - HTTP/2 web server with built-in support for Lua, Markdown, GCSS and Amber. * [Caddy](https://github.com/mholt/caddy) - Caddy is an alternative, HTTP/2 web server that's easy to configure and use. +* [consul](https://www.consul.io/) - Consul is a tool for service discovery, monitoring and configuration. * [devd](https://github.com/cortesi/devd) - A local webserver for developers * [etcd](https://github.com/coreos/etcd) - A highly-available key value store for shared configuration and service discovery. * [nsq](http://nsq.io/) - A realtime distributed messaging platform From e774a5bc6e205d9dfb3f2275ad68a7ceba569974 Mon Sep 17 00:00:00 2001 From: Patrick D Date: Fri, 11 Dec 2015 20:23:33 +0100 Subject: [PATCH 100/108] add drone (https://drone.io) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8bddec75..14c6f68d 100644 --- a/README.md +++ b/README.md @@ -174,6 +174,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Tools for help with continuous integration* +* [drone](https://github.com/drone/drone) - Drone is a Continuous Integration platform built on Docker, written in Go * [goveralls](https://github.com/mattn/goveralls) - Go integration for Coveralls.io continuous code coverage tracking system. * [overalls](https://github.com/go-playground/overalls) - Multi-Package go project coverprofile for tools like goveralls From f94b21827bf37dffe718a08b08dee0167b78932e Mon Sep 17 00:00:00 2001 From: Patrick D Date: Fri, 11 Dec 2015 20:28:19 +0100 Subject: [PATCH 101/108] creat new section in continuous integration continuous integration section had one subsection: tools for help with continuous integration, but drone.io doesn't fit in so i created the subsection for complete ci platforms which are implemented in Go --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 14c6f68d..79e45559 100644 --- a/README.md +++ b/README.md @@ -172,9 +172,12 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a ## Continuous Integration -*Tools for help with continuous integration* +*Continuous integrations platforms implemented in Go* * [drone](https://github.com/drone/drone) - Drone is a Continuous Integration platform built on Docker, written in Go + +*Tools for help with continuous integration* + * [goveralls](https://github.com/mattn/goveralls) - Go integration for Coveralls.io continuous code coverage tracking system. * [overalls](https://github.com/go-playground/overalls) - Multi-Package go project coverprofile for tools like goveralls From 6329d06cb9f74acd8de60b9d10bf240045b34048 Mon Sep 17 00:00:00 2001 From: Patrick D Date: Fri, 11 Dec 2015 20:30:06 +0100 Subject: [PATCH 102/108] fixed typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 79e45559..842fc34a 100644 --- a/README.md +++ b/README.md @@ -172,7 +172,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a ## Continuous Integration -*Continuous integrations platforms implemented in Go* +*Continuous integration platforms implemented in Go* * [drone](https://github.com/drone/drone) - Drone is a Continuous Integration platform built on Docker, written in Go From 93da008505922104a95ffc53e1ced08888dbccb0 Mon Sep 17 00:00:00 2001 From: Patrick D Date: Sat, 12 Dec 2015 13:44:04 +0100 Subject: [PATCH 103/108] delete second continuous integration section --- README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/README.md b/README.md index 842fc34a..14c6f68d 100644 --- a/README.md +++ b/README.md @@ -172,12 +172,9 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a ## Continuous Integration -*Continuous integration platforms implemented in Go* - -* [drone](https://github.com/drone/drone) - Drone is a Continuous Integration platform built on Docker, written in Go - *Tools for help with continuous integration* +* [drone](https://github.com/drone/drone) - Drone is a Continuous Integration platform built on Docker, written in Go * [goveralls](https://github.com/mattn/goveralls) - Go integration for Coveralls.io continuous code coverage tracking system. * [overalls](https://github.com/go-playground/overalls) - Multi-Package go project coverprofile for tools like goveralls From 5c886c011eb68cedbbf4bbbe65116ffec27c0107 Mon Sep 17 00:00:00 2001 From: crast Date: Sat, 12 Dec 2015 17:51:02 -0700 Subject: [PATCH 104/108] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 14c6f68d..24810c29 100644 --- a/README.md +++ b/README.md @@ -269,6 +269,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language. * [arangolite](https://github.com/solher/arangolite) - Lightweight golang driver for ArangoDB. * [cayley](https://github.com/google/cayley) - A graph database with support for multiple backends. + * [dynago](https://github.com/underarmour/dynago) - Dynago is a principle of least surprise client for DynamoDB * [go-couchbase](https://github.com/couchbase/go-couchbase) - Couchbase client in Go * [go-couchdb](https://github.com/fjl/go-couchdb) - Yet another CouchDB HTTP API wrapper for Go * [gocb](https://github.com/couchbase/gocb) - Official Couchbase Go SDK From 5ad0cb8733bf221d9192a43df8f0c5c56f51fbcd Mon Sep 17 00:00:00 2001 From: Nicolas Kaiser Date: Sun, 13 Dec 2015 19:06:40 +0100 Subject: [PATCH 105/108] Fix typos --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 24810c29..8564cec7 100644 --- a/README.md +++ b/README.md @@ -417,7 +417,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go. * [gotk3](https://github.com/gotk3/gotk3) - Go bindings for GTK3. * [sciter](https://github.com/oskca/sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. -* [systray](https://github.com/getlantern/systray) - Cross platfrom Go library to place an icon and menu in the notification area +* [systray](https://github.com/getlantern/systray) - Cross platform Go library to place an icon and menu in the notification area * [trayhost](https://github.com/shurcooL/trayhost) - Cross-platform Go library to place an icon in the host operating system's taskbar. * [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. * [walk](https://github.com/lxn/walk) - Windows application library kit for Go. @@ -546,7 +546,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [libtextcat](https://github.com/goodsign/libtextcat) - Cgo binding for libtextcat C library. Guaranteed compatibility with version 2.2. * [MMSEGO](https://github.com/awsong/MMSEGO) - This is a GO implementation of [MMSEG](http://technology.chtsai.org/mmseg/) which a Chinese word splitting algorithm. * [paicehusk](https://github.com/rookii/paicehusk) - Golang implementation of the Paice/Husk Stemming Algorithm -* [porter](https://github.com/a2800276/porter) - This is a fairly straighforward port of Martin Porter's C implementation of the Porter stemming algorithm. +* [porter](https://github.com/a2800276/porter) - This is a fairly straightforward port of Martin Porter's C implementation of the Porter stemming algorithm. * [porter2](https://github.com/zhenjl/porter2) - Really fast Porter 2 stemmer. * [segment](https://github.com/blevesearch/segment) - A Go library for performing Unicode Text Segmentation as described in [Unicode Standard Annex #29](http://www.unicode.org/reports/tr29/) * [sentences](https://github.com/neurosnap/sentences) - A sentence tokenizer: converts text into a list of sentences. @@ -827,7 +827,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - A simple golang package to communicate with [themoviedb.org](https://themoviedb.org) * [translate](https://github.com/poorny/translate) - Go online translation package * [tumblr](https://github.com/mattcunningham/gumblr) - Go wrapper for the Tumblr v2 API. -* [webhooks](https://github.com/go-playground/webhooks) - Webhook reciever for GitHub.. more services to come +* [webhooks](https://github.com/go-playground/webhooks) - Webhook receiver for GitHub.. more services to come ## Utilities @@ -843,7 +843,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-dry](https://github.com/ungerik/go-dry) - DRY (don't repeat yourself) package for Go. * [go-rate](https://github.com/beefsack/go-rate) - A timed rate limiter for Go * [go-sitemap-generator](https://github.com/ikeikeikeike/go-sitemap-generator) - XML Sitemap generator written in Go. -* [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with a id and trigger the event from anywhere from your project. +* [go-trigger](https://github.com/sadlil/go-trigger) - Go-lang global event triggerer, Register Events with an id and trigger the event from anywhere from your project. * [go-underscore](https://github.com/tobyhede/go-underscore) - A useful collection of helpfully functional Go collection utilities. * [goback](https://github.com/carlescere/goback) - Go simple exponential backoff package. * [godaemon](https://github.com/VividCortex/godaemon) - Utility to write daemons @@ -860,7 +860,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [grequests](https://github.com/levigross/grequests) - An elegant and simple `net/http` wrapper that follows Python's requests library * [htcat](https://github.com/htcat/htcat) - Parallel and Pipelined HTTP GET Utility * [httpcontrol](https://github.com/facebookgo/httpcontrol) - Package httpcontrol allows for HTTP transport level control around timeouts and retries. -* [hystrix-go](https://github.com/afex/hystrix-go) - Imprements Hystrix patterns of programmer-defined fallbacks aka circuit breaker. +* [hystrix-go](https://github.com/afex/hystrix-go) - Implements Hystrix patterns of programmer-defined fallbacks aka circuit breaker. * [JobRunner](https://github.com/bamzi/jobrunner) - Smart and featureful cron job scheduler with job queuing and live monitoring built in. * [jsonf](https://github.com/miolini/jsonf) - Console tool for highlighted formatting and struct query fetching JSON. * [jsongo](https://github.com/ricardolonga/jsongo) - Fluent API to make it easier to create Json objects. @@ -952,7 +952,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [traffic](https://github.com/pilu/traffic) - Sinatra inspired regexp/pattern mux and web framework for Go. * [Volatile](https://github.com/volatile/core) - Minimalist middleware stack promoting flexibility, good practices and clean code. * [web.go](https://github.com/hoisie/web) - A simple framework to write webapps in Go. -* [Zerver](https://github.com/cosiner/zerver) - Zerver is a expressive, modular, feature completed RESTful framework. +* [Zerver](https://github.com/cosiner/zerver) - Zerver is an expressive, modular, feature completed RESTful framework. * [zeus](https://github.com/daryl/zeus) - A very simple and fast HTTP router for Go. From b4d2f4c6eea2105d1118f47da4e6aeff753192cd Mon Sep 17 00:00:00 2001 From: Breno Martinusso Date: Mon, 14 Dec 2015 16:04:23 -0200 Subject: [PATCH 106/108] Add go-chat-bot --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8564cec7..b5fa4228 100644 --- a/README.md +++ b/README.md @@ -524,6 +524,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [autoflags](https://github.com/artyom/autoflags) - Go package to automatically define command line flags from struct fields. * [browscap_go](https://github.com/fromYukki/browscap_go) - GoLang Library for [Browser Capabilities Project](http://browscap.org/). +* [go-chat-bot](https://github.com/go-chat-bot/bot) - IRC, Slack & Telegram bot written in Go. * [go-multierror](https://github.com/hashicorp/go-multierror) - A Go (golang) package for representing a list of errors as a single error. * [gopsutil](https://github.com/shirou/gopsutil) - A cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc). * [gosms](https://github.com/haxpax/gosms) - Your own local SMS gateway in Go that can be used to send SMS @@ -812,7 +813,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gostorm](https://github.com/jsgilmore/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. * [hipchat](https://github.com/andybons/hipchat) - This project implements a golang client library for the Hipchat API. * [hipchat (xmpp)](https://github.com/daneharrigan/hipchat) - A golang package to communicate with HipChat over XMPP. -* [Medium](https://github.com/Medium/medium-sdk-go) - A Golang SDK for Medium's OAuth2 API +* [Medium](https://github.com/Medium/medium-sdk-go) - A Golang SDK for Medium's OAuth2 API * [mixpanel](https://github.com/dukex/mixpanel) - Mixpanel is a library for tracking events and sending Mixpanel profile updates to Mixpanel from your go applications. * [pushover](https://github.com/gregdel/pushover) - Go wrapper for the Pushover API. * [rrdaclient](https://github.com/Omie/rrdaclient) - Go Library to access statdns.com API, which is in turn RRDA API. DNS Queries over HTTP. From ba1d6fb715b889ecc2cc608dde1275f24864ae86 Mon Sep 17 00:00:00 2001 From: Seth Goings Date: Tue, 8 Dec 2015 21:57:12 -0700 Subject: [PATCH 107/108] add glide --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8564cec7..f7a707e8 100644 --- a/README.md +++ b/README.md @@ -617,6 +617,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for package and dependency management.* * [gigo](https://github.com/LyricalSecurity/gigo) - PIP-like dependency tool for golang, with support for private repositories and hashes. +* [glide](https://github.com/Masterminds/glide) - Manage your golang vendor and vendored packages with ease. Inspired by tools like Maven, Bundler, and Pip. * [godep](https://github.com/tools/godep) - dependency tool for go, godep helps build packages reproducibly by fixing their dependencies. * [gom](https://github.com/mattn/gom) - Go Manager - bundle for go. * [goop](https://github.com/nitrous-io/goop) - A simple dependency manager for Go (golang), inspired by Bundler. From f863b94bc789e0ca4dcdec8fa38cb0e5907de344 Mon Sep 17 00:00:00 2001 From: Olivier Poitrey Date: Sun, 20 Dec 2015 09:51:38 -0800 Subject: [PATCH 108/108] Add xmux --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8564cec7..d7053b50 100644 --- a/README.md +++ b/README.md @@ -952,6 +952,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [traffic](https://github.com/pilu/traffic) - Sinatra inspired regexp/pattern mux and web framework for Go. * [Volatile](https://github.com/volatile/core) - Minimalist middleware stack promoting flexibility, good practices and clean code. * [web.go](https://github.com/hoisie/web) - A simple framework to write webapps in Go. +* [xmux](https://github.com/rs/xmux) - A high performance muxer based on `httprouter` with `net/context` support. * [Zerver](https://github.com/cosiner/zerver) - Zerver is an expressive, modular, feature completed RESTful framework. * [zeus](https://github.com/daryl/zeus) - A very simple and fast HTTP router for Go.