My favorites | Sign in
Project Home Wiki
Search
for
Projects  
A list of Go projects.
Updated May 19 (3 days ago) by goo...@julienschmidt.com

Contributing

To edit this page you must be a contributor to the go-wiki project. To get contributor access, send mail to adg@golang.org from your Google Account.

Please help!

The following list was imported from the old Go Dashboard. Many of the links are stale, and the categorization leaves much to be desired. If anyone would like to help organize and clean up this list, your help would be most appreciated.

Dead projects

If you find a project in this list that is dead or broken, please either mark it as such (if you have edit permissions) or mention it in the #go-nuts IRC channel.

Table of Contents

Build Tools

  • GG - A build tool for Go in Go
  • GVM - GVM provides an interface to manage Go versions.
  • goenv - goenv provides Go version and Go workspace management tools
  • SCons Go Tools - A collection of builders that makes it easy to compile Go projects in SCons.
  • fileembed-go - This is a command-line utility to take a number of source files, and embed them into a Go package.
  • gb - A(nother) build tool for go, with an emphasis on multi-package projects.
  • go-pkg-config - lightweight clone of pkg-config
  • goam - A simple project build tool for Go
  • godag - A frontend to the Go compiler collection
  • goscons - Another set of SCons builders for Go.
  • gotgo - An experimental preprocesor to implement 'generics'
  • colorgo - Colorize go build output

Caching

  • go-cache - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications.
  • gomemcache - a memcached client
  • gomemcached - A memcached server in go
  • libmemcache - Fast client and server libraries speaking memcache protocol
  • memcache - go memcached client, forked from YouTube Vitess
  • memcached - Fast memcache server, which supports persistence and cache sizes exceeding available RAM
  • memcached-bench - Benchmark tool for memcache servers

Command-line Option Parsers

  • argcfg - Use reflection to populate fields in a struct from command line arguments
  • getopt - Yet Another getopt Library for Go. This one is like Python's.
  • getopt - full featured traditional (BSD/POSIX getopt) option parsing in Go style
  • gnuflag - GNU-compatible flag parsing; substantially compatible with flag.
  • go-flags - command line option parser for go
  • go-options - A command line parsing library for Go
  • goopt - a getopt clone to parse command-line flags
  • options - Self documenting CLI options parser
  • opts.go - lightweight POSIX- and GNU- style option parsing
  • pflag - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags.
  • subcommands - A concurrent, unit tested, subcommand library
  • go-commander - Simplify the creation of command line interfaces for Go, with commands and sub-commands, with argument checks and contextual usage help. Forked from the "go" tool code.

Cloud Computing

  • gocircuitA distributed operating system that sits on top of the traditional OS on multiple machines in a datacenter deployment. It provides a clean and uniform abstraction for treating an entire hardware cluster as a single, monolithic compute resource. Developed by Tumblr.
  • Docker The Linux container runtime. Developed by dotCloud.
  • Tsuru Tsuru is an open source polyglot cloud computing platform as a service (PaaS), developed by Globo.com

Command-line Tools

  • GoPasswordCreator - A small tool, which creates random passwords
  • gich - A cross platform which utility written in Go
  • gocreate - Command line utility that create files from templates.
  • gojson - Command-line tool for manipulating JSON for use in developing Go code.
  • jsonpp - A fast command line JSON pretty printer.
  • passhash - Command-line utility to create secure password hashes
  • tecla - Command-line editing library
  • DevTodo2 - A small command-line per-project task list manager.

Compression

  • dgolzo - LZO bindings
  • fast-archiver - Alternative archiving tool with fast performance for huge numbers of small files
  • gbacomp - A Go library to (de)compress data compatible with GBA BIOS
  • go-lz4 - Port of LZ4 lossless compression algorithm to Go.
  • go-lzss - Implementation of LZSS compression algorithm in Go
  • go-sevenzip - Package sevenzip implements access to 7-zip archives (wraps C interface of LZMA SDK)
  • go-zip - A wrapper around C library libzip, providing ability to modify existing ZIP archives.
  • lzma - compress/lzma package for Go
  • snappy-go - Google's Snappy compression algorithm in Go
  • yenc - yenc decoder package
  • zappy - Package zappy implements the zappy block-based compression format. It aims for a combination of good speed and reasonable compression.

Console User Interface

  • ansiterm - pkg to drive text-only consoles that respond to ANSI escape sequences
  • gnureadline - GNU Readline bindings
  • go-stfl - a thin wrapper around STFL, an ncurses-based widget toolkit
  • gockel - a Twitter client for text terminals
  • gocurse - Go bindings for NCurses
  • gocurses - NCurses wrapper
  • goncurses - An ncurses library, including the form, menu and panel extensions
  • igo - A simple interactive Go interpreter built on exp/eval with some readline refinements
  • oh - A Unix shell written in Go
  • pty - obtain pseudo-terminal devices
  • termbox-go - A minimalist alternative to ncurses to build terminal-based user interfaces
  • termios - Terminal support
  • termon - Easy terminal-control-interface for Go.
  • go.sgr - Terminal/console colors and text decoration (bold,underlined,etc).

Cryptography

  • BLAKE-256 - Go implementation of BLAKE-256 hash function
  • GoSkein - Implementation of Skein hash and Threefisch crypto for Go
  • dkeyczar - Go port of Google'e Keyczar cryptography library
  • dkrcrypt - Korean block ciphers: SEED and HIGHT
  • dskipjack - Go implementation of the SKIPJACK encryption algorithm
  • go-hc128 - Go implementation of HC-128, an eSTREAM stream cipher
  • keccak - A keccak (SHA-3) implementation
  • ketama.go - libketama-style consistent hashing
  • kindi - encryption command line tool
  • passwordhash - Package passwordhash implements safe password hashing and comparison.
  • scrypt - Go implementation of Colin Percival's scrypt key derivation function
  • ssh.go - SSH2 Client library
  • whirlpool - whirlpool cryptographic hashing algorithm
  • simpleaes - AES encryption made easy

Data Structures

  • GoArrayList - GoArrayList is a Go language substitute for the Java class ArrayList, with very nearly all features.
  • GoLLRB - A Left-Leaning Red-Black (LLRB) implementation of 2-3 balanced binary search trees in Google Go
  • GoNetCDF - A wrapper for the NetCDF file format library
  • Gokogiri - A lightweight libxml wrapper library
  • ListDict - Python List and Dict for Go
  • Picugen - A general-purpose hash/checksum digest generator.
  • Sortutil - Nested, case-insensitive, and reverse sorting for Go.
  • Tuple - Tuple is a go type that will hold mixed types / values
  • asyncwr - Asynchronous, non-blocking, wrapper for io.Writer
  • bigendian - binary parsing and printing
  • btree - Package btree implements B-trees with fixed size keys, http://en.wikipedia.org/wiki/Btree
  • deepcopy - Make deep copies of data structures
  • dgobloom - A Bloom Filter implementation
  • epochdate - Compact dates stored as days since the Unix epoch
  • fifo_queue - Simple FIFO queue
  • go.fifo - Simple auto-resizing thread-safe fifo queue.
  • funnelsort - Lazy funnel sort -- a cache-oblivious sorting algorithm
  • go-avltree - AVL tree (Adel'son-Vel'skii & Landis) with indexing added
  • go-darts - Double-ARray Trie System for golang
  • go-extractor - Go wrapper for GNU libextractor
  • go-maps - Go maps generalized to interfaces
  • go-priority-queue - An easy to use heap implementation with a conventional priority queue interface.
  • go-stree - A segment tree implementation for range queries on intervals
  • gohash - A simple linked-list hashtable that implements sets and maps
  • goop - Dynamic object-oriented programming support for Go
  • gopqueue - Priority queue at top of container/heap
  • goskiplist - A skip list implementation in Go.
  • gotoc - A protocol buffer compiler written in Go
  • goxml - A thin wrapper around libxml2
  • gringo - A minimalist queue implemented using a stripped-down lock-free ringbuffer
  • itreap - An immutable ordered list, interally a treap.
  • libgob - A low level library for generating gobs from other languages
  • ps - Persistent data structures
  • rbtree - Yet another red-black tree implementation, with a C++ STL-like API
  • rtreego - an R-Tree library
  • samling - Package samling implements various collection data structures.
  • skip - A fast position-addressable ordered map and multimap.
  • skiplist - A skip list implementation. Highly customizable and easy to use.
  • Skiplist - A fast indexable ordered multimap.
  • sortutil - Utilities supplemental to the Go standard "sort" package
  • timsort - Fast, stable sort, uses external comparator or sort.Interface
  • tribool - Ternary (tree-valued) logic for Go
  • vcard - Reading and writing vcard file in go. Implementation of RFC 2425 (A MIME Content-Type for Directory Information) and RFC 2426 (vCard MIME Directory Profile).
  • x2j - Unmarshal XML doc into mapstringinterface{} or JSON
  • xlsx - A library to help with extracting data from Microsoft Office Excel XLSX files.
  • go-algs/ed - Generalized edit-distance implementation
  • go-algs/maxflow - An energy minization tool using max-flow algorithm.

Databases and Storage

MongoDB

  • go-mongo - a driver for MongoDB
  • mgo - Rich MongoDB driver for Go
  • mgo (package) - Rich MongoDB driver for Go (package reference for the Packages tab, please keep the other link since it has docs)

MySQL

  • MyMySQL - MySQL Client API written entirely in Go.
  • Go-MySQL-Driver - A lightweight and fast MySQL-Driver for Go's database/sql package
  • vitess - Scaling MySQL databases for the web

ODBC

  • go-odbc - ODBC Driver for Go
  • odbc3-go - This package is wrapper around ODBC (version 3).

PostgreSQL

  • go-libpq - cgo-based Postgres driver for Go's database/sql package
  • go-pgsql - A PostgreSQL client library for Go
  • pgsql.go - PostgreSQL high-level client library wrapper
  • pq - Pure Go PostgreSQL driver for database/sql

Redis

  • Tideland CGL Redis - Powerful Redis client with pub/sub support.
  • Redigo - Go client for Redis.
  • Go-Redis - Client and Connectors for Redis key-value store
  • godis - Simple client for Redis
  • redis - Redis client for Golang

RethinkDB

SQLite

ORM

  • beedb - beedb is an ORM for Go. It lets you map Go structs to tables in a database
  • gorp - SQL mapper for Go
  • qbs - Query By Struct. Supports MySQL, PosgreSQL and SQLite3.
  • hood - Database agnostic ORM for Go. Supports Postgres and MySQL.

Multiple wrappers

  • gosexy/db - an abstraction of wrappers for popular third party SQL and No-SQL database drivers.

Key-Value-Stores

  • Diskv - Home-grown, disk-backed key-value store
  • gocask - Key-value store inspired by Riak Bitcask. Can be used as pure go implementation of dbm and other kv-stores.
  • leveldb-go - This is an implementation of the LevelDB key/value database.
  • levigo - levigo provides the ability to create and access LevelDB databases.
  • persival - Programatic, persistent, pseudo key-value storage
  • dbm - Package dbm (WIP) implements a simple database engine, a hybrid of a hierarchical and/or a key-value one.

Other

  • CodeSearch - Index and perform regex searches over large bodies of source code
  • JGDB - JGDB stands for Json Git Database
  • neo4j - Neo4j graph database REST client.
  • Neo4j-GO - Neo4j REST Client in golang
  • Optimus Cache Prime - Smart cache preloader for websites with XML sitemaps.
  • Weed File System - fast distributed key-file store
  • cabinet - Kyoto Cabinet bindings for go
  • cass - Cassandra Client Lib
  • cdb.go - Create and read cdb ("constant database") files
  • couch-go - newer maintained CouchDB database binding
  • couchgo - The most feature complete CouchDB Adapter for Go. Modeled after couch.js.
  • fswatch - mac utility for watching the file system for changes
  • go-db-oracle - GO interface to Oracle DB
  • go-notify - GO bindings for the libnotify
  • go-sphinx - A sphinx client package for Go, for full text search.
  • go-wikiparse - mediawiki dump parser for working with wikipedia data
  • go.fsevents - path event lib for mac
  • gographite - statsd server in go (for feeding data to graphite)
  • gokabinet - Go bindings for Kyoto Cabinet DBM implementation
  • goprotodb - A binding to Berkeley DB storing records encoded as Protocol Buffers.
  • goriak - Database driver for riak database (project homepage is now on bitbucket.org)
  • goriakpbc - Riak driver using Riak's protobuf interface
  • gotyrant - A Go wrapper for tokyo tyrant
  • hdfs - go bindings for libhdfs
  • riako - High level utility methods for interacting with Riak databases
  • whisper-go - library for working with whisper databases

Development Tools

  • rerun - Rerun watches your binary and all its dependencies so it can rebuild and relaunch when the source changes.
  • godev - Recompiles and runs your Go code on source change. Also watches all your imports for changes.
  • GoWatch - GoWatch watches your dev folder for modified files, and if a file changes it restarts the process.
  • Livedev - Livedev is a development proxy server that enables live code reloading.
  • glib - Bindings for GLib type system
  • gocog - A code generator that can generate code using any language
  • godiff - diff file comparison tool with colour html output
  • gonew - A tool to create new Go projects
  • go-play - A HTML5 web interface for experimenting with Go code. Like http://golang.org/doc/play but runs on your computer
  • gorun - Enables Go source files to be used as scripts.
  • goven - Easily copy code from another project into yours
  • gowatcher - Reload a specified go program automatically by monitoring a directory.
  • goweb - Literate programming tools for Go based on CWEB by Donald Knuth and Silvio Levy.
  • hsandbox - Tool for quick exprimentation with Go snippets
  • liccor - A tool for updating license headers in Go source files
  • liteide - An go auto build tools and qt-based ide for Go
  • trace - A simple debug tracing
  • hopwatch - simple debugger for Go
  • godepgraph - Create a dependency graph for a go package

Emacs Tags

  • egotags - ETags generator
  • tago - Emacs TAGS generator for Go source
  • tago1 - etags generator for go that builds with go 1

Distributed/Grid Computing

  • donut - A library for building clustered services in Go
  • Skynet - Skynet is distributed mesh of processes designed for highly scalable API type service provision.

Documentation

  • GoDoc.org - GoDoc.org generates documentation on the fly from source on Bitbucket, Github, Google Project Hosting and Launchpad.
  • Mango - Automatically generate unix man pages from Go sources
  • godocdown - Format package documentation (godoc) as GitHub friendly Markdown
  • redoc - Commands documentation for Redis
  • sphinxcontrib-golangdomain - Sphinx domain for Go

Editors

  • Go conTEXT - Highlighter plugin for the conTEXT editor
  • Google Go for Idea - Google Go language plugin for Intellij IDEA
  • go-gedit - Google Go language plugin for gedit
  • goclipse - An Eclipse-based IDE for Go.
  • gofinder - (code) search tool for acme
  • tabby - Source code editor
  • godit - A microemacs-like text editor written in Go.

Encodings and Character Sets

  • Mahonia - Character-set conversion library in Go
  • base58 - Human input-friendly base58 encoding
  • bencode-go - Encodeing and decoding the bencode format used by the BitTorrent peer-to-peer file sharing protocol
  • bsonrpc - BSON codec for net/rpc
  • chardet - Charset detection library ported from ICU
  • charmap - Character encodings in Go
  • go-charset - Conversion between character sets. Native Go.
  • go-simplejson - a Go package to interact with arbitrary JSON
  • go-xdr - Pure Go implementation of the data representation portion of the External Data Representation (XDR) standard protocol as specified in RFC 4506 (obsoletes RFC 1832 and RFC 1014).
  • gobson - BSON (de)serializer
  • goyaml - A port of LibYAML to Go
  • iconv-go - iconv wrapper with Reader and Writer
  • mimemagic - Detect mime-types automatically based on file contents with no external dependencies
  • go-msgpack - Comprehensive MsgPack library for Go, with pack/unpack and net/rpc codec support
  • msgpack - Msgpack format implementation for Golang
  • msgpack-json - Command-line utilities to convert between msgpack and json
  • storable - Write perl storable data

Games

  • ChessBuddy - Play chess with Go, HTML5, WebSockets and random strangers!
  • Fergulator - An NES emulator, using SDL and OpenGL
  • Gongo - A program written in Go that plays Go
  • Ludo Game - Ludo Board game powered by Go on Appengine
  • godoku - Go Sudoku Solver - example of "share by communicating"
  • gospeccy - A ZX Spectrum 48k Emulator

GIS

  • go-gdal - Go bindings for GDAL
  • go-liblas - Go bindings for libLAS
  • go-proj-4 - An interface to the Cartographic Projections Library PROJ.4.
  • lvd.go - dense set, byte trie, reed solomon encoding, wgs84 geodesics

Go Implementations

  • Express Go - Interpreted Go implementation for Windows
  • llgo - LLVM-based Go compiler, written in Go (work-in-progress)

Graphics and Audio

  • AnsiGo - Simple ANSi to PNG converter written in pure Go
  • Arclight - Arclight is a tool for rendering images
  • Go-OpenGL - Go bindings for OpenGL
  • GoGL - OpenGL binding generator
  • GoMacDraw - A mac implementation of go.wde
  • Goop - Audio synthesizer engine
  • Plotinum - An API for creating plots
  • Winhello - An example Windows GUI hello world application
  • allergro - basic wrapper for the Allegro library
  • baukasten - A modular game library.
  • blend - Image processing library and rendering toolkit for Go.
  • bmp.go - package for encoding/decoding Windows BMP files
  • chart - Library to generate common chart (pie, bar, strip, scatter, hstogram) in different output formats.
  • draw2d - This package provide an API to draw 2d geometrical form on images. This library is largely inspired by postscript, cairo, HTML5 canvas.
  • freetype-go - a Go implementation of FreeType
  • gl - OpenGL bindings using glew
  • glfw - bindings to the multi-platform library for opening a window, creating an OpenGL context and managing input
  • glh - OpenGL helper functions to manage text, textures, framebuffers and more
  • glu - bindings to the OpenGL Utility Library
  • go-cairo - Go wrapper for the cairo graphics library
  • go-gd - Go bingings for GD
  • go-gnuplot - go bindings for GNUPlot
  • go-gtk3 - gtk3 bindings for go
  • go-heatmap - A toolkit for making heatmaps
  • go-openal - Experimental OpenAL bindings for Go
  • go-opencl - A go wrapper to the OpenCL heterogeneous parallel programming library
  • go-opencv - Go bindings for OpenCV
  • go-taglib - Go wrapper for TagLib, an audio meta-data parser
  • go-vlc - Go bindings for libVLC
  • go.wde - A windowing/drawing/event interface
  • GoHM - H.265/HEVC HM Video Codec in Go
  • goHorde - Go Bindings for the Horde3d Rendering engine.
  • gocairo - Golang wrapper for cairo graphics library
  • goexif - Retrieve EXIF metadata from image files
  • goray - Raytracer written in Go, based on Yafaray
  • gosc - Pure Go OSC (Open Sound Control) library
  • gosdl - Go wrapper for SDL
  • goxscr - Go rewrites of xscreensaver ports
  • gst - Go bindings for GStreamer
  • hgui - Gui toolkit based on http and gtk-webkit.
  • portaudio - A Go binding to PortAudio
  • pulsego - Go binding for PulseAudio
  • resize - Image resizing with different interpolations.
  • starfish - A simple Go graphics and user input library, built on SDL
  • svgo - a library for creating and outputting SVG
  • tga - TARGA image format encoding/decoding library
  • window - Optimized moving window for real-time data
  • wingo - A fully-featured window manager written in Go.
  • wxGo - Go Wrapper for the wxWidgets GUI
  • x-go-binding - bindings for the X windowing system
  • xgb - A fork of the x-go-binding featuring support for thread safety and all X extensions.
  • xgbutil - A utility library to make use of the X Go Binding easier. (Implements EWMH and ICCCM specs, key binding support, etc.)

GUIs and Widget Toolkits

  • go-fltk - FLTK2 GUI toolkit bindings for Go
  • go-gtk - Bindings for GTK
  • go.uik - A UI kit for Go, in Go.
  • GoQuick - Go and Qt Quick experimentation
  • mdtwm - Tiling window manager for X
  • go-qt5 - qt5 bindings for go

Hardware

  • go.hid - Provides communication with USB Human Interface Devices.

Lexers/Scanners

  • golex - Lex/flex like fast (DFA) scanners generator.

Linguistics

Mathematics

  • Cvx - Convex optimization package, port of CVXOPT python package
  • Units - Implements types, units, converter functions and some mathematics for some common physical types. lib
  • bayesian - Naive Bayesian Classification for Golang
  • blas - Go implementation of BLAS (Basic Linear Algebra Subprograms)
  • cartconvert - cartography functions for the Go programming language
  • dice - Dice rolling library
  • evaler - A simple floating point arithmetic expression evaluator
  • fixed - A fixed point (Q32.32 format) math library.
  • geom - 2d geometry.
  • go.mahalanobis - Naive implementation of the Mahalanobis distance using go.matrix
  • go-fftw - Go bindings for FFTW - The Fastest Fourier Transform in the West
  • go-fn - Special functions that would not fit in "math" pkg
  • go-gt - Graph theory algorithms
  • go-humanize - Formatting numbers for humans.
  • go-symexpr - Symbolic math as an AST with derivatives, simplification, and non-linear regression
  • go.matrix - a linear algebra package
  • gochipmunk - Go bindings to the Chipmunk Physics library.
  • gocomplex - a complex number library
  • godec - multi-precision decimal arithmetic
  • gomat - lightweight FAST matrix and vector math
  • gsl - GNU Scientific Library bindings
  • mathutil - Package mathutil provides utilities supplementing the standard 'math' and 'rand' packages.
  • mt19937_64 - Mersenne Twister int64 random source
  • polyclip.go - Go implementation of algorithm for Boolean operations on 2D polygons
  • pso-go - A library of PSO (Particle Swarm Optimization) for golang.
  • siphash - SipHash: a fast short-input pseudorandom function
  • statistics - GNU GSL Statistics (GPLv3)
  • vector - A small vector lib.

Misc

  • CGRates - Rating system designed to be used in telecom carriers world
  • Go-PhysicsFS - Go bindings for the PhysicsFS archive-access abstraction library.
  • Go-fuse - Library to write FUSE filesystems in Go
  • go.pipeline - Library that emulates Unix pipelines
  • GoFlow - Flow-based and dataflow programming library for Go
  • GoLCS - Sovle Longest Common Sequence problem in go
  • Gotgo - A Go preprocessor that provides an implementation of generics
  • Hranoprovod - Command-line calorie tracking
  • Tideland CGL Monitoring - Flexible monitoring of your application
  • atexit - Simple atexit library
  • bíogo - Basic bioinformatics functions for the Go language.
  • cpu - A Go package that reports processor topology
  • cron - A library for running jobs (funcs) on a cron-formatted schedule
  • dbus-go - D-Bus Go library
  • desktop - Open file/uri with default application (cross platform)
  • devboard - Kanban board application based on Simple-Khanban
  • dump - An utility that dumps Go variables, similar to PHP's var_dump
  • env - Easily pull environment variables with defaults
  • epub - Bindings for libepub to read epub content.
  • faker - Generate fake data, names, text, addresses, etca
  • fsnotify - File system notifications for Go
  • functional - Functional programming library including a lazy list implementation and some of the most usual functions.
  • go-amiando - Wrapper for the Amiando event management API
  • go-bit - An efficient and comprehensive bitset implementation with utility bit functions.
  • go-ean - A minimal utility library for validating EAN-8 and EAN-13 and calculating checksums.
  • go-eco - Functions for use in ecology
  • go-erx - Extended error reporting library
  • go-fann - Go bindings for FANN, library for artificial neural networks
  • go-idn - a project to bring IDN support to Go, feature compatible with libidn
  • go-osx-plist - CoreFoundation Property List support for Go
  • go-papi - Go interface to the PAPI performance API
  • go-pkg-mpd - A library to access the MPD music daemon
  • go-pkg-xmlx - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browser and exposes some simpel single/multi-node search functions
  • go-qrand - Go client for quantum random bit generator service at random.irb.hr
  • go-semvar - Semantic versions (see http:/semver.org)
  • go-taskstats - Go interface for Linux taskstats
  • go-translate - Google Language Translate library
  • go-uuid - Universal Unique IDentifier generator and parser
  • go.pcsclite - Go wrapper for pcsc-lite
  • goNI488 - A Go wrapper around National Instruments NI488.2 General Purpose Interface Bus (GPIB) driver.
  • goPromise - Scheme-like delayed evaluation for Go
  • goST - A steam properties (steam table) library written for Go. This was designed as a native go equivalent to XSteam.
  • goagain - Zero-downtime restarts in Go
  • goconf - a configuration file parser
  • gocsv - Library for CSV parsing and emitting
  • goga - A genetic algorithm framework
  • gogobject - GObject-introspection based bindings generator
  • golife - Implementation of Game of Life for command line
  • gomagic - Libmagic bindings
  • gommap - gommap enables Go programs to directly work with memory mapped files and devices in a very efficient way
  • goneuro - Go driver for NeuroSky devices.
  • goplan9 - libraries for interacting with Plan 9
  • goraphing - A tool to generate a simple graph data structures from JSON data files
  • goskirt - Upskirt markdown library bindings for Go
  • gotweet - A simple Twitter command line client
  • gouuid - Pure Go UUID v3, 4 and 5 generator compatible with RFC4122
  • hasher - Library to compute hash in user account passwords
  • Prometheus Instrumentation/Metrics Client - This is a whitebox instrumentation framework for servers written in Go. It exposes programmatically-generated metrics automatically for use in the Prometheus time series collection and post-processing environment.
  • koans - programming koans for go
  • lineup - A minimalistic message queue server
  • log4go - Go logging package akin to log4j
  • mimemail - Construct plain text MIME messages for use with net/smtp.
  • mitigation - Package mitigation provides the possibility to prevent damage caused by bugs or exploits.
  • nma.go - A NotifyMyAndroid client for go.
  • passwd - A parser for the /etc/passwd file
  • pool - A generic worker pool
  • primegen.go - Sieve of Atkin prime number generator
  • procfile - A Procfile parser
  • randat - Devel tool for generating random bytestrings and encoding files in code-friendly forms
  • replaykit - A library for replaying time series data.
  • selenium - Selenium client
  • serial - Serial ports API (pure Go)
  • sio - Package sio lets you access old serial junk. It's a go-gettable fork and modification of dustin's rs232 package.
  • symutils - Various tools and libraries to handle symbolic links
  • syslog - With this package you can create your own syslog server with your own handlers for different kind of syslog messages
  • udis86 - Go bindings for libudis86
  • xplor - Files tree browser for p9p acme
  • yubigo - Yubikey OTP validation and auhtentication API client.
  • go-villa - Some miscellaneous wrapper and small algorithms.(wrappers to slices, priority queues, path related apis, a string set type)
  • go.bitcoin - Wrapper for bitcoind daemon API, makes working with bitcoins easy.
  • Breaker - Breaker enables graceful degraded mode operations by means of wrapping unreliable interservice interface points with circuit breaker primitives.

Music

  • gompd - A client interface for the MPD (Music Player Daemon)

Networking

  • Go Ajax - Go Ajax is a JSON-RPC implementation designed to create AJAX powered websites.
  • GoRTP - RTP / RTCP stack implementation for Go
  • QRP - QRP is a simple packet-based RPC protocol designed as a simple alternative to Go's rpc, that can run over UDP
  • Rsync - Rsync algorithm as a Go library
  • Tonika - Secure social networking platform
  • Uniqush - A free and open source software which provides a unified push service for server-side notification to apps on mobile devices.
  • VDED - Vector Delta Engine Daemon - track deltas in ever-increasing values (written in Go)
  • dmrgo - Library for with Hadoop Streaming map/reduce
  • doozerconfig - Go package for managing json-encoded configuration in Doozer
  • doozerd - A consistent distributed data store
  • eventsource - Server-sent events for net/http server.
  • gearman-go - A native implementation for Gearman API with Go.
  • gmail - Simple library for sending emails from a Gmail account, for people not interested in dealing with protocol details.
  • go-curl - libcurl bingding that supports go func callbacks
  • go-dbus - A library to connect to the D-bus messaging system
  • go-icap - ICAP (Internet Content Adaptation Protocol) server library
  • go-imap - IMAP client library
  • go-mail - Email utilities including RFC822 messages and Google Mail defaults.
  • go-nagios - Library for writing Nagios plugins
  • go-nntp - An NNTP client and server library for go
  • go-router - implementation of remote channel communication
  • go-rpcgen - ProtoBuf RPC binding generator for net/rpc and AppEngine
  • go-socket.io - A Socket.IO backend implementation written in Go
  • go9 - an implementation of the 9P distributed file system protocol
  • go9p - 9p protocol implementation in Go
  • gobeanstalk - Go Beanstalkd client library
  • godwulf - Gopher server written in Go
  • gogammu - Library for sending and receiving SMS
  • gonetbench - Simple TCP benchmarking tool
  • gopcap - A simple wrapper around libpcap
  • goprotobuf - the Go implementation of Google's Protocol Buffers
  • goq - A persistent message queue written in Go.
  • gosndfile - Go binding for libsndfile
  • gozmq - Go Bindings for 0mq (zeromq/zmq)
  • handlersocket-go - Go native library to connect to HandlerSocket interface of InnoDB tables
  • imap - Implementation of IMAP4rev1 client, as described in RFC 3501.
  • kafka.go - Producer & Consumer for the Kafka messaging system
  • ldap - Basic LDAP v3 functionality for the GO programming language.
  • netsnail - A low-bandwidth simulator
  • opendap - Go wrapper for Openldap
  • remotize - A remotize package and command that helps remotizing methods without having to chaneg their signatures for rpc
  • replican-sync - An rsync algorithm implementation in Go
  • rs232 - Serial interface for those of us who still have modems (or arduinos)
  • rss - RSS parsing library.
  • seamless - Reverse TCP Proxy with HTTP managment API
  • spdy - SPDY library, wired into net/http, currently supporting servers only.
  • statsd-go - Statsd implementation in Go, forked from gographite, which submits to Ganglia
  • stompngo - A Stomp 1.1 Compliant Client
  • stompngo_examples - Examples for stompngo.
  • telnet - A simple interface for interacting with Telnet connection
  • tcp_fallback - A TCP proxy implementing a simple fallback mechanism.
  • tcpmeter - A TCP throughput measuring tool
  • uritemplates - A level 4 implementation of URI Templates (RFC 6570)
  • sockjs-go - Implements server side counterpart for the SockJS-client browser library.
  • zmq2 - A Go interface to ZeroMQ (zmq, 0MQ) version 2.
  • zmq3 - A Go interface to ZeroMQ (zmq, 0MQ) version 3.

DNS

FTP

  • ftp - Package ftp provides a minimal FTP client as defined in RFC 959
  • ftp4go - An FTP client for Go, started as a port of the standard Python FTP client library
  • goftp - A FTP client library

Instant Messaging

  • GoTY - "Go Troll Yourself", minimalist client IRC library
  • go-irc - Simple IRC client library
  • go-xmpp - XMPP client library
  • gobir - Extensible IRC bot with channel administration, seen support, and go documentation querying
  • goexmpp - XMPP client implementation
  • goirc - event-based stateful IRC client framework
  • gorobot - a modular IRC bot
  • irc.go - Go IRC bot framework

Other Random Toys, Experiments and Example Code

P2P and File Sharing

  • Taipei-Torrent - A BitTorrent client
  • ed2kcrawler - eDonkey2000 link crawler
  • gobit - Bittorrent Client in Go
  • gop2p - A simple p2p app to learn Go
  • wgo - A simple BitTorrent client based in part on the Taipei-Torrent and gobit code
  • DHT - Kademlia DHT node used by Taipei-Torrent, compatible with BitTorrent

Programming

Source Code Management

  • hggofmt - A Mercurial/hg extension with a hook to
  • nut - Nut is a tool to manage versioned Go source code packages, called "nuts".
  • vcstool - VCS abstraction tool
  • go-diff - A diff command for go languange showing sematic differences of two go source files.

Strings and Text

  • Black Friday - A markdown processor
  • NTemplate - Nested Templates
  • binarydist - Binary diff and patch
  • columnize - format slice or array into aligned columns
  • csvutil - A heavy duty CSV reading and writing library.
  • dgohash - Collection of string hashing functions, including Murmur3 and others
  • gettext - Feature complete, cgo
  • go-aspell - GNU Aspell spell checking library bindings for Go.
  • go-guess - Go wrapper for libguess
  • go-migemo - migemo extension for go (Japanese incremental text search)
  • go.stringmetrics - String distance metrics implemented in Go
  • goini - A go library to parse INI files.
  • golorem - lorem ipsum generator
  • gosphinx - A Go client interface to the Sphinx standalone full-text search engine
  • gpKMP - String-matching in Golang using the Knuth–Morris–Pratt algorithm
  • hangul - Handy tools to manipulate korean character.
  • inflect - Word inflection library (similar to Ruby ActiveSupport::Inflector). Singularize(), Pluralize(), Underscore() etc.
  • kasia.go - Templating system for HTML and other text documents
  • kview - Simple wrapper for kasia.go templates. It helps to modularize content of a website
  • libtextcat - A Go wrapper for libtextcat.
  • mail.go - Parse email messages
  • peg - Parsing Expression Grammer Parser
  • polyglot - String translation utilities for Go
  • pretty.go - Pretty-printing for go values
  • rubex - A simple regular expression library that supports Ruby's regex syntax. It is faster than Regexp.
  • scanner - A text scanner that parses primitive types, analogous to Java's
  • strogonoff - Stenography with Go
  • strutil - Package strutil collects utils supplemental to the standard strings package.
  • text - Text paragraph wrapping and formatting
  • textcat - N-gram based text categorization, with support for utf-8 and raw text
  • go-colortext - Change the color of the text and background in the console, working both in Windows and other systems.

Testing

  • Gocheck - Rich test framework with suites, fixtures, assertions, good error reporting, etc
  • Tideland CGL Asserts - Make asserts during testing and inside of your applications
  • assert - helper functions for the built-in 'testing' package
  • go2xunit - Convert "go test -v" output to xunit XML output
  • go-tap - TAP (Test Anything Protocol) parser in Go
  • goautotest - Automatically run unit tests when code changes are made
  • gocov - Code coverage testing/analysis tool
  • gomock - a mocking framework for Go.
  • testflight - Painless http testing in Go
  • terst - A terse, easy-to-use testing library for Go
  • Testify - A set of packages that provide many tools for testifying that your code will behave as you intend.

Virtual Machines and Languages

  • Gelo - Extensible, embeddable interpreter
  • GoForth - A simple Forth parser
  • GoLightly - A flexible and lightweight virtual machine with runtime-configurable instruction set
  • Golog - Prolog interpreter in Go
  • Minima - A language implemented in Go.
  • RubyGoLightly - An experimental port of TinyRb to Go
  • The erGo™ Compiler - An independent implementation of the Go language.
  • forego - Forth virtual machine
  • go-python - go bindings for CPython C-API
  • GoEmPHP - This package is built for Embedding PHP into Golang.
  • goenv - Create an isolated environment where you install Go packages, binaries, or even C libraries. Very similar to virtualenv for Python.
  • golemon - A port of the Lemon parser-generator
  • goll1e - An LL(1) parser generator for the Go programming language.
  • golua - Go wrapper for LUA's C API
  • golua-fork - A fork of GoLua that works on current releases of Go
  • gotcl - Tcl interpreter in Go
  • meme - Scheme interpreter in Go
  • ngaro - A ngaro virtual machine to run retroForth images
  • otto - A JavaScript parser and interpreter written natively in Go

Web Applications

  • Digestw - A Web Application - Twitter's Timeline Digest
  • GoURLShortener - A frontend for the http://is.gd/ URL shortener
  • Já Vai Tarde - Unfollows monitoring for Twitter
  • fourohfourfound - A fallback HTTP server that may redirect requests with runtime configurable redirections
  • goals-calendar - A web-based Seinfeld calendar implemented in Go
  • goblog - A static blog engine
  • gocrawl - A polite, slim and concurrent web crawler.
  • goflash - Flash player implementation in Go language
  • gogallery - simple web server with an emphasis on easily browsing images
  • goof - A simple http server to exchange files over http (upload/download)
  • gopages - A php-like web framework that allows embedding Go code in web pages
  • kurz.go - a url shortener based on web.go and redis
  • now.go - A simple HTTP-based to-do queue.
  • sf_server - a tiny send file server and client
  • webtf - Web app to graphical visualization of twitter timelines using the HTML5
  • rabbitmq-http - REST API for RabbitMQ

Web Libraries

Authentication

  • GOAuth - OAuth Consumer
  • goauth - A library for header-based OAuth over HTTP or HTTPS.
  • Go-OAuth - OAuth 1.0 client
  • OAuth Consumer - OAuth 1.0 consumer implementation
  • authcookie - Package authcookie implements creation and verification of signed authentication cookies.
  • dgoogauth - Go port of Google's Authenticator library for one-time passwords
  • go-http-auth - HTTP Basic and HTTP Digest authentication
  • httpauth-go - Package httpauth provides utilities to support HTTP authentication policies. Support for both the basic authentication scheme and the digest authentication scheme are provided.
  • oauth1a - OAuth 1.0 client library

DOM handling

  • Cascadia - CSS selector library
  • GoQuery - jQuery-like DOM manipulation library, using Go's experimental HTML package.
  • HTML Transform - A CSS selector based html scraping and transformation library

Frameworks and Toolkits

  • Beego - Beego is an open source version of the scalable, non-blocking web server and tools that power SNDA's CDN system.
  • Go-Blog - Blog framework written in Go
  • Golanger - Golanger Web Framework is a lightweight framework for writing web applications in Go.
  • Goldorak.Go - a web miniframework built using mustache.go, web.go and Go-Redis
  • Gongo Web - Web framework with separate data modeling, control and visualization
  • GoRest - An extensive configuration(tags) based RESTful style web-services framework.
  • Revel - High productivity web framework modeled on Play! Framework
  • Tideland CGL Web - Package for RESTful web applications
  • app.go - Web framework for google app engine
  • browserspeak - Generate HTML templates, CSS or SVG without writing < or >
  • falcore - Modular HTTP server framework
  • go-fastweb - aims to be a simple, small and clean MVC framework for go
  • go-rest - A small and evil REST framework for Go
  • go-restful - lean package for building REST-style Web Services
  • go-start - A high level web-framework for Go
  • go-urlshortener - interface to google's urlshorten API
  • go-webproject - Modular web application framework and app server
  • goku - a Web Mvc Framework for golang, mostly like ASP.NET MVC.
  • golanger - Golanger Web Framework is a lightweight framework for writing web applications in Go
  • gorilla - Gorilla web toolkit
  • goweb - Lightweight RESTful web framework for Go providing Ruby on Rails style routing
  • Gowut - Go Web UI Toolkit is a full-featured, easy to use, platform independent Web UI Toolkit written in pure Go.
  • mango - Mango is a modular web-application framework for Go, inspired by Rack, and PEP333.
  • restclient - Client library for interacting with RESTful APIs.
  • sawsij - Provides a small, opinionated web framework.
  • trinity - MVC framework
  • web.go - a simple framework to write webapps
  • wfdr - Simple web framework designed for and written in go. Works with other lanauges as well, but not as well.
  • GEP - A simple web framework similar to JSP. Writing dynamic pages knowing only Go and HTML(or Markdown)

HTML forms

  • gforms - HTML forms for Golang
  • GoForms - Form data validation, cleaning and error reporting - a la django.forms
  • htmlfiller - Fills in html forms with default values and errors a la Ian Bicking's htmlfill for Python
  • MonstiForm - HTML form generator and validator library.
  • xsrftoken - A package for generating and validating tokens used in preventing XSRF attacks.

Public API Wrappers

  • Gotank - Searchify's Go client for the IndexTank full-text search API
  • GoTwilio - Twilio library for Go (golang). Very basic at the moment.
  • Stack on Go - Go wrapper for Stack Exchange API
  • adn - Interface to the App.net API
  • anaconda - Client library for the Twitter 1.1 API
  • ddg - DuckDuckGo API interface
  • facebook - Up-to-date facebook graph API client. Handy and flexible.
  • go.stripe - a simple credit card processing library for Go using the Stripe API
  • go-dealmap - Go library for accessing TheDealMap's API
  • go-dropbox - API library for dropbox
  • go-facebook - Go implementations of facebook APIs.
  • go-flickr - A wrapper for Flickr's API
  • go-gravatar - Wrapper for the Gravatar API
  • go-libGeoIP - GO Lib GeoIP API for Maxmind
  • gomwapi - Access mediawiki contents like wikipedia, wiktionary in golang
  • go-tripit - Go API library for the TripIt web services
  • gocaptcha - gocaptcha provides easy access to the reCaptcha API in go.
  • googtrans - unofficial go bindings for Google Translate API v2
  • gorecurly - A Client app to use with Recurly's api
  • gravatar - Gravatar image/profile API library
  • justintv - Justin.tv REST API with oauth
  • postmark - Access postmark API from Go
  • twittergo - Client library for Twitter's API
  • reddit.go - Client library for Reddit API

Other

  • HypeCMS - A flexible CMS built with Go and MongoDb.
  • Kontl - A client for kon.tl's URL shortening service
  • Optimus Sitemap Generator - A universal XML sitemap generator
  • RSS-Go - RSS and ATOM feed reader package for the Go programming language.
  • adhoc-http - Quick & dirty HTTP static file server
  • assets - Helps prepares CSS and JS files for development and production of Go web apps.
  • bwl - a set of libraries to help build web sites
  • captcha - Image and audio captcha generator and server
  • gaerecords - Lightweight wrapper around appengine/datastore providing Active Record and DBO style management of data
  • get2ch-go - a library to access the 2channel Japanese web bulletin board
  • go-gzip-file-server - A net.http.Handler similar to FileServer that serves gzipped content
  • go-httpclient - a Go HTTP client with timeouts
  • muxer - Simple muxer for a Go app without regexp
  • go-pkg-rss - a packages that reads RSS and Atom feeds
  • go-rss - Simple RSS parser, tested with Wordpress feeds.
  • go-twitter - another Twitter client
  • go-twitter-oauth - a simple Twitter client (supports OAuth)
  • gohaml - An implementation of the popular XHTML Abstraction Markup Language using the Go language.
  • gojwt - Json Web Tokens for Go
  • gomesh - A simple HTML decoration library.
  • goreman - foreman clone
  • gorouter - Simple router for go to process url variables
  • goscribble - An MPD Audioscrobble
  • grender - Go static site generator
  • http-gonsole - Speak HTTP like a local. (the simple, intuitive HTTP console, golang version)
  • httprpc - HTTP RPC codecs (json2, soap, rest)
  • mustache.go - an implementation of the Mustache template language
  • passwordreset - Creation and verification of secure tokens useful for implementation of "reset forgotten password" feature in web applications.
  • pat - A Sinatra style pattern muxer
  • persona - remote verification API for persona
  • plex - simple, small, light, regexp http muxer with chaining
  • purell - tiny Go library to normalize URLs
  • pusher.go - HTTP Server Push module for the standard http package
  • rest.go (forked) - forked rest.go for improvements and REST consistency
  • rest2go - Based on rest.go, forked for improvements and REST consistency
  • robotstxt - The robots.txt exclusion protocol implementation. Allows to parse and query robots.txt file.
  • seshcookie - A web session library inspired by Beaker
  • user_agent - An HTTP User-Agent parser
  • webdriver - WebDriver (Selenium) client
  • webtestutil - Web and HTTP functional testing utilities. Includes Gorilla testing support.
  • goroute - A very simple URL router based on named submatches of regular expression that works well with http.Handler .

Windows

  • Windows Command Line Shutdow - A tool to shutdown Windows Computer from Command Prompt
  • gform - An easy to use Windows GUI toolkit for Go
  • go-Windows-begin - for the absolute Windows-Go beginner
  • go-ole - win32 ole implementation for golang
  • w32 - Windows API wrapper for Go.
  • walk - "Windows Application Library Kit" for the Go Programming Language

Unsorted; please help!

The following entries have not been filed. Please help by putting these in relevant categories.

  • Grumble - Mumble (VoIP) server implementation
  • Monsti - Resource friendly flat file CMS for private and small business sites.
  • NATS - NATS client for Go
  • Shuffle - Implementation of the Fisher–Yates shuffle (or Knuth shuffle) in Go.
  • Twackup - Backs up your tweets into local files
  • YBC bindings - Bindings for YBC library providing API for fast in-process blob cache
  • domainerator - Command line tool to combine wordlist and suffixes/TLDs into domain names and check if they are registered or not
  • ebml-go - EBML decoder
  • gcfg - reads configuration files into Go structs (write planned), supports user-defined types, syntax based on gitconfig
  • gmail2go - Simple gmail multiple accounts cli mail checker
  • go-bindata - Converts any file into manageable Go source code for embedding binary data into a Go program.
  • go-cron - A small cron job system to handle scheduled tasks, such as optimizing databases or kicking idle users from chat. The cron.go project was renamed to this for go get compatibility.
  • go-gmetric - Ganglia gmetric protocol support
  • go-nat-pmp - A client for the NAT-PMP protocol used in Apple and open-source routers
  • go-osx-xattr - Package xattr wraps OS X functions to manipulate the extended attributes of a file, directory and symbolic link.
  • go-recaptcha - Handles reCaptcha form submissions in Go
  • go-spew - Implements a deep pretty printer for Go data structures to aid in debugging
  • go-stat - performant instrumentation/profiling for Go
  • go-tmx - A Go library that reads Tiled's TMX files
  • go-webfinger - Simple Client Implementation of WebFinger
  • go.psl - Go regdom-libs/public suffix list
  • goconsistenthash - Consistent hashing library (based on http://www.lexemetech.com/2007/11/consistent-hashing.html)
  • godebiancontrol - Golang debian control file parser
  • gographviz - Graphviz DOT language parser for golang
  • golor - golor is a command line tool for golang source code coloring
  • golsys - A library for building an evaluating Lindenmayer systems.
  • gopass - Allows typing of passwords without echoing to screen
  • gopcapreader - Presents realtime pcap data as io.Reader objects
  • gorefit - A library for theming existing websites
  • gortlsdr - A librtlsdr wrapper, which turns certain USB DVB-T dongles into a low-cost, general purpose software-defined radio receiver.
  • gostatsd - statsd server and library
  • gostax - A Streaming API for XML (StAX) in go
  • graylog-golang - graylog-golang is a full implementation for sending messages in GELF (Graylog Extended Log Format) from Google Go (Golang) to Graylog
  • httptail - tools push stdout/stderr to http chunked
  • humanize - formats large numbers into human readable small numbers
  • humanize-bytes - Command-line utilities to convert "MiB" etc to raw numbers, and back
  • imaging - Package imaging provides basic image manipulation functions (resize, rotate, flip, crop, etc.) as well as simplified image loading and saving.
  • img-LinuxFr.org - A reverse-proxy cache for external images used on LinuxFr.org
  • netstat-nat - Display NAT entries on Linux systems
  • paicehusk - Go implementation of the Paice/Husk Stemmer
  • proto - Map/Reduce/Filter etc. for Go using channels as result streams
  • rrd - Bindings for rrdtool
  • seed - Easily seed PRNGs with some entropy
  • snowball - Snowball stemmer
  • spellabc - Package spellabc implements spelling alphabet code word encoding.
  • stressdisk - Stress test your disks / memory cards / USB sticks before trusting your valuable data to them
  • strftime - strftime implementation
  • swift - Go language interface to Swift / Openstack Object Storage / Rackspace cloud files
  • validation - Simple independent struct/key-value validation
Powered by Google Project Hosting