Astronomy

  • ​gonova​​ - A wrapper for libnova -- Celestial Mechanics, Astrometry and Astrodynamics Library
  • ​meeus​​ - Implementation of "Astronomical Algorithms" by Jean Meeus
  • ​novas​​ - Interface to the Naval Observatory Vector Astrometry Software (NOVAS)
  • ​go-fits​​ - FITS (Flexible Image Transport System) format image and data reader

Build Tools

  • ​colorgo​​ - Colorize go build output
  • ​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
  • ​GG​​ - A build tool for Go in Go
  • ​go-pkg-config​​ - lightweight clone of pkg-config
  • ​goam​​ - A simple project build tool for Go
  • ​godag​​ - A frontend to the Go compiler collection
  • ​goenv​​ - goenv provides Go version and Go workspace management tools
  • ​goscons​​ - Another set of SCons builders for Go
  • ​gotgo​​ - An experimental preprocesor to implement 'generics'
  • ​goxc​​ - A build tool with a focus on cross-compiling, packaging, versioning and distribution
  • ​GVM​​ - GVM provides an interface to manage Go versions
  • ​SCons Go Tools​​ - A collection of builders that makes it easy to compile Go projects in SCons

Caching

  • ​cache2go​​ - A caching library with expiration capabilities and access counters
  • ​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
  • ​groupcache​​ - Caching and cache-filling library, intended as a replacement for memcached in many cases
  • ​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
  • ​YBC bindings​​ - Bindings for YBC library providing API for fast in-process blob cache

Cloud Computing

  • ​Docker​​ - The Linux container runtime. Developed by dotCloud.
  • ​gocircuit​​ - A 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.
  • ​gosync​​ - A package for syncing data to and from S3.
  • ​juju​​ - Orchestration tool (deployment, configuration and lifecycle management), developed by Canonical.
  • ​ShipBuilder​​ - ShipBuilder is a minimalist open source platform as a service, developed by Jay Taylor.
  • ​Tsuru​​ - Tsuru is an open source polyglot cloud computing platform as a service (PaaS), developed by Globo.com.
  • ​swift​​ - Go language interface to Swift / Openstack Object Storage / Rackspace cloud files

Command-line Option Parsers

  • ​argcfg​​ - Use reflection to populate fields in a struct from command line arguments
  • ​cobra​​ - A commander for modern go CLI interactions supporting commands & POSIX/GNU flags
  • ​command​​ - Add subcommands to your CLI, provides help and usage guide.
  • ​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.
  • ​uggo​​ - Yet another option parser offering gnu-like option parsing. This one wraps (embeds) flagset. It also offers rudimentary pipe-detection (commands like ls behave differently when being piped to).

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
  • ​pwdgen​​ - A small tool, which generate human password, written in Go.
  • ​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.

Configuration File Parsers

  • ​gcfg​​ - read INI-style configuration files into Go structs; supports user-defined types and subsections
  • ​globalconf​​ - Effortlessly persist to and read flag values from an ini config file
  • ​goconf​​ - a configuration file parser
  • ​toml​​ :
  • yaml :
  • ​yaml​​ - YAML support for the Go language, by Canonical
  • ​goyaml​​ - A port of LibYAML to Go

Console User Interface

  • ​ansi​​ - Easily create ansi escape code strings and closures to fomat, color console output
  • ​ansiterm​​ - pkg to drive text-only consoles that respond to ANSI escape sequences
  • ​gnureadline​​ - GNU Readline bindings
  • ​go.linenoise​​ - Linenoise bindings (simple and easy readline with prompt, optional history, optional tab completion)
  • ​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
  • ​gopass​​ - Allows typing of passwords without echoing to screen
  • ​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).
  • ​go-web-shell​​ - Remote web shell, implements a net/http server.

Cryptography

  • ​BLAKE2b​​ - Go implementation of BLAKE2b hash function
  • ​cryptoPadding​​ - Block padding schemes implemented in 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
  • ​GoSkein​​ - Implementation of Skein hash and Threefisch crypto for Go
  • ​keccak​​ - A keccak (SHA-3) implementation
  • ​ketama.go​​ - libketama-style consistent hashing
  • ​kindi​​ - encryption command line tool
  • ​scrypt​​ - Go implementation of Colin Percival's scrypt key derivation function
  • ​simpleaes​​ - AES encryption made easy
  • ​ssh.go​​ - SSH2 Client library
  • ​siphash​​ - SipHash: a fast short-input pseudorandom function
  • ​tiger​​ - Tiger cryptographic hashing algorithm
  • ​whirlpool​​ - whirlpool cryptographic hashing algorithm
  • ​cryptogo​​ - some useful cryptography-related functions, including paddings (PKCS7, X.923), PBE with random salt and IV

Data Processing

  • ​Heka​​ - Real time data and log file processing engine.
  • ​gostatsd​​ - Statsd server and library.
  • ​proto​​ - Map/Reduce/Filter etc. for Go using channels as result streams.
  • ​rrd​​ - Bindings for rrdtool.

Data Structures

Lists

  • ​GoArrayList​​ - GoArrayList is a Go language substitute for the Java class ArrayList, with very nearly all features.
  • ​goskiplist​​ - A skip list implementation in Go.
  • ​itreap​​ - An immutable ordered list, interally a treap.
  • ​ListDict​​ - Python List and Dict for Go
  • ​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.

Queues

  • ​fifo_queue​​ - Simple FIFO queue
  • ​go-priority-queue​​ - An easy to use heap implementation with a conventional priority queue interface.
  • ​go.fifo​​ - Simple auto-resizing thread-safe fifo queue.
  • ​gopqueue​​ - Priority queue at top of container/heap
  • ​gringo​​ - A minimalist queue implemented using a stripped-down lock-free ringbuffer
  • ​figo​​ - A simple fifo queue with an optional thread-safe version.
  • ​queued​​ - A simple network queue daemon

Graphs

Trees

  • ​b​​ - Package b implements B+trees with delayed page split/concat and O(1) enumeration. Easy production of source code for B+trees specialized for user defined key and value types is supported by a simple text replace.
  • ​btree​​​ - Package btree implements B-trees with fixed size keys, ​​http://en.wikipedia.org/wiki/Btree​
  • ​go-avltree​​ - AVL tree (Adel'son-Vel'skii & Landis) with indexing added
  • ​go-darts​​ - Double-ARray Trie System for golang
  • ​go-stree​​ - A segment tree implementation for range queries on intervals
  • ​GoLLRB​​ - A Left-Leaning Red-Black (LLRB) implementation of 2-3 balanced binary search trees in Google Go
  • ​rbtree​​ - Yet another red-black tree implementation, with a C++ STL-like API
  • ​rtreego​​ - an R-Tree library
  • ​gotree​​ - Tree Visualization, Algorithms

Other

  • ​asyncwr​​ - Asynchronous, non-blocking, wrapper for io.Writer
  • ​bigendian​​ - binary parsing and printing
  • ​collections​​ - Several common data structures
  • ​data-structures​​ - A collection of data-structures (AVL Tree, B+Tree, Ternary Search Trie, Hash Table (Separate Chaining), Linear Hash Table)
  • ​deepcopy​​ - Make deep copies of data structures
  • ​dgobloom​​ - A Bloom Filter implementation
  • ​epochdate​​ - Compact dates stored as days since the Unix epoch
  • ​fsm​​ - Minimalistic state machine for use instead of booleans
  • ​go-algs/ed​​ - Generalized edit-distance implementation
  • ​go-algs/maxflow​​ - An energy minization tool using max-flow algorithm.
  • ​go-extractor​​ - Go wrapper for GNU libextractor
  • ​go-maps​​ - Go maps generalized to interfaces
  • ​gohash​​ - A simple linked-list hashtable that implements sets and maps
  • ​Gokogiri​​ - A lightweight libxml wrapper library
  • ​GoNetCDF​​ - A wrapper for the NetCDF file format library
  • ​goop​​ - Dynamic object-oriented programming support for Go
  • ​goset​​ - A simple, thread safe Set implementation
  • ​gotoc​​ - A protocol buffer compiler written in Go
  • ​goxml​​ - A thin wrapper around libxml2
  • ​itertools​​ - Provides generic iteratable generator function along with functionality similar to the itertools python package.
  • ​jsonv​​ - A JSON validator
  • ​libgob​​ - A low level library for generating gobs from other languages
  • ​Picugen​​ - A general-purpose hash/checksum digest generator.
  • ​ps​​ - Persistent data structures
  • ​samling​​ - Package samling implements various collection data structures.
  • ​tribool​​ - Ternary (tree-valued) logic for Go
  • ​Tuple​​ - Tuple is a go type that will hold mixed types / values
  • ​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.

Databases and Storage

See also ​​SQLDrivers page​​.

MongoDB

  • ​mgo​​ - Rich MongoDB driver for Go

MySQL

ODBC

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
  • ​pgx​​ - Go PostgreSQL driver that avoids database/sql in exchange for better PostgreSQL specific support
  • ​pq​​ - Pure Go PostgreSQL driver for database/sql

QL

  • ​ql​​ - A pure Go embedded (S)QL database.

Redis

​RethinkDB​

SQLite

ORM

  • ​beedb​​ - beedb is an ORM for Go. It lets you map Go structs to tables in a database
  • ​gorm​​ - An ORM library for Go, aims for developer friendly
  • ​gorp​​ - SQL mapper for Go
  • ​hood​​ - Database agnostic ORM for Go. Supports Postgres and MySQL.
  • ​qbs​​ - Query By Struct. Supports MySQL, PosgreSQL and SQLite3.
  • ​xorm​​ - A Simple and Powerful ORM for Go.
  • ​go-modeldb​​ - A simple wrapper around sql.DB for struct support.

Multiple wrappers

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

Key-Value-Stores

  • ​dbm​​ - Package dbm (WIP) implements a simple database engine, a hybrid of a hierarchical and/or a key-value one.
  • ​Diskv​​ - Home-grown, disk-backed key-value store
  • ​etcd​​ - Highly-available key value store for shared configuration and service discovery
  • ​gocask​​ - Key-value store inspired by Riak Bitcask. Can be used as pure go implementation of dbm and other kv-stores.
  • ​kv​​ - Yet another key/value persistent store. Atomic operations, two phase commit, automatic crash recovery, ...
  • ​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

NoSQL

  • ​tiedot​​ - A NoSQL document database engine using JSON for documents and queries; it can be embedded into your program, or run a stand-alone server using HTTP for an API.

Other

Development Tools

  • ​cwrap​​ - Go wrapper (binding) generator for C libraries.
  • ​demand​​ - Download, build, cache and run a Go app easily.
  • ​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.
  • ​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
  • ​syntaxhighlighter​​ - language-independent code syntax highlighting library
  • ​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.
  • ​go-spew​​ - Implements a deep pretty printer for Go data structures to aid in debugging
  • ​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.
  • ​hopwatch​​ - simple debugger for Go
  • ​hsandbox​​ - Tool for quick exprimentation with Go snippets
  • ​Livedev​​ - Livedev is a development proxy server that enables live code reloading.
  • ​liccor​​ - A tool for updating license headers in Go source files
  • ​liteide​​ - An go auto build tools and qt-based ide for Go
  • ​rerun​​ - Rerun watches your binary and all its dependencies so it can rebuild and relaunch when the source changes.
  • ​trace​​ - A simple debug tracing
  • ​godepgraph​​ - Create a dependency graph for a go package




Emacs Tags

Distributed/Grid Computing

  • ​donut​​ - A library for building clustered services in Go
  • ​locker​​​ - A distributed lock service built on top of ​​etcd​​.
  • ​Skynet​​ - Skynet is distributed mesh of processes designed for highly scalable API type service provision.

Documentation

Editors

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).
  • ​gopack​​ - Bit-packing for Go
  • ​gobson​​ - BSON (de)serializer
  • ​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 (DEPRECATED in favor of ​​codec​​ )
  • ​codec-msgpack-binc​​​ High Performance and Feature-Rich Idiomatic Go Library providing encode/decode support for multiple binary serialization formats: ​​msgpack​​​ and ​​binc​​.
  • ​msgpack​​ - Msgpack format implementation for Golang
  • ​msgpack-json​​ - Command-line utilities to convert between msgpack and json
  • ​storable​​ - Write perl storable data
  • ​TNetstring​​ - tnetstrings (tagged Netstrings)
  • ​nnz​​ - String and Int primitives that serialize to JSON and SQL null
  • ​magicmime​​ -- Mime-type detection with Go bindings for libmagic

Games

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
  • ​gogeos​​ - Go library for spatial data operations and geometric algorithms
  • ​lvd.go​​ - dense set, byte trie, reed solomon encoding, wgs84 geodesics
  • ​polyline​​ - Google Maps polyline encoding and decoding
  • ​geom​​ - Open Geo Consortium-style geometries with native Go GeoJSON, WKB, and WKT encoding and decoding (work-in-progress)

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
  • ​allegro 5​​ - Go Bindings for Allegro 5 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
  • ​glfw 3​​ - Go bindings for GLFW 3 library
  • ​glh​​ - OpenGL helper functions to manage text, textures, framebuffers and more
  • ​glu​​ - bindings to the OpenGL Utility Library
  • ​egl​​ - egl bindings
  • ​es2​​ - es2 bindings
  • ​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
  • ​gocl​​ - Go OpenCL (gocl) binding
  • ​go-opencv​​ - Go bindings for OpenCV
  • ​go-taglib​​ - Go wrapper for TagLib, an audio meta-data parser
  • ​go-tmx​​ - A Go library that reads Tiled's TMX files
  • ​go-vlc​​ - Go bindings for libVLC
  • ​go.wde​​ - A windowing/drawing/event interface
  • ​GoHM​​ - H.265/HEVC HM Video Codec in Go
  • ​GoVisa​​ - H265/HEVC Bitstream Analyzer 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.
  • ​imaging​​ - Package imaging provides basic image manipulation functions (resize, rotate, flip, crop, etc.) as well as simplified image loading and saving.
  • ​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.)
  • ​vu​​ - Virtual Universe. A skeleton 3D engine.

GUIs and Widget Toolkits

  • ​go-fltk​​ - FLTK2 GUI toolkit bindings for Go
  • ​go-gtk​​ - Bindings for GTK
  • ​go-qt5​​ - qt5 bindings for go
  • ​go.uik​​ - A UI kit for Go, in Go. (project is closed)
  • ​GoQuick​​ - Go and Qt Quick experimentation
  • ​gothic​​ - Tcl/Tk Go bindings
  • ​gotk3​​ - Go bindings for GTK3, requires GTK version 3.8
  • ​go-webkit2​​ - Go bindings for the WebKitGTK+ v2 API (w/headless browser & JavaScript support)
  • ​Gowut​​ - Gowut (Go Web UI Toolkit) is a full-featured, easy to use, platform independent Web UI Toolkit written in pure Go, no platform dependent native code is linked or called.
  • ​iup​​​ - Bindings for ​​IUP​
  • ​mdtwm​​ - Tiling window manager for X
  • ​qml​​ - QML support for the Go language

Hardware

  • ​go.hid​​ - Provides communication with USB Human Interface Devices.
  • ​hwio​​ - Hardware I/O library for SoC boards including BeagleBone Black and Raspberry Pi.
  • ​gortlsdr​​ - A librtlsdr wrapper, which turns certain USB DVB-T dongles into a low-cost, general purpose software-defined radio receiver.

Language and Linguistics

  • ​alpinocorpus-go​​ - A reader and a writer for Alpino corpora.
  • ​go-aspell​​ - GNU Aspell spell checking library bindings for Go.
  • ​go-language​​ - A simple language detector using letter frequency data.
  • ​go.stringmetrics​​ - String distance metrics implemented in Go
  • ​inflect​​ - Word inflection library (similar to Ruby ActiveSupport::Inflector). Singularize(), Pluralize(), Underscore() etc.
  • ​libtextcat​​ - A Go wrapper for libtextcat.
  • ​textcat​​ - N-gram based text categorization, with support for utf-8 and raw text
  • ​sego​​ - Chinese language segmenter.
  • ​goling​​ - String Similarity(Cosine Similarity, Levenshtein Distance), Spell Check, Segmentation
  • ​gobay​​ - Naive Bayesian Classifier (Sentiment Analysis)
  • ​gocha​​ - CHILDES data analyzing tool
  • ​gomata​​ - Automata Theory, Computational Linguistics

Logging

  • ​glog​​ - Leveled execution logs for Go
  • ​factorlog​​ - Really fast, featureful logging infrastructure (supports colors, verbosity, and many formats)
  • ​seelog​​ - Flexible dispatching, filtering, and formatting
  • ​timber​​ - Configurable Logger for Go
  • ​log4go​​ - Go logging package akin to log4j
  • ​syslog​​ - With this package you can create your own syslog server with your own handlers for different kind of syslog messages
  • ​graylog-golang​​ - graylog-golang is a full implementation for sending messages in GELF (Graylog Extended Log Format) from Google Go (Golang) to Graylog
  • ​rfw​​ - Rotating file writer - a 'logrotate'-aware file output for use with loggers

Machine Learning

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-lm​​ - Linear models in Go. Provides WLS and regression with t residuals via a cgo -> BLAS/LAPACK interface.
  • ​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
  • ​gographviz​​ - Graphviz DOT language parser for golang
  • ​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.
  • ​statistics​​ - GNU GSL Statistics (GPLv3)
  • ​vector​​ - A small vector lib.

Misc

  • ​GCSE​​​ - Go code search engine. ​​source​
  • ​CGRates​​ - Rating system designed to be used in telecom carriers world
  • ​Go-PhysicsFS​​ - Go bindings for the PhysicsFS archive-access abstraction library.
  • ​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-business-creditcard​​ - Validate/generate credit card checksums/names.
  • ​gochem​​ - A computational chemistry/biochemistry library.
  • ​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-metrics​​ - Go port of Coda Hale's Metrics library
  • ​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.dbus​​ - Native Go library for D-Bus
  • ​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.
  • ​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
  • ​go-magic​​ - A Go wrapper for libmagic
  • ​go-magic​​ - Simple interface to libmagic for Go Programming Language
  • ​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
  • ​go-ses​​ - Amazon AWS Simple Email Service (SES) API client
  • ​go-systemd​​ - Utility functions for interacting with the systemd init system
  • ​twitterfetcher​​​ - A tool to make Twitter API requests using the ​​Application-only authentication​
  • ​gouuid​​ - Pure Go UUID v3, 4 and 5 generator compatible with RFC4122
  • ​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
  • ​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
  • ​go-selenium​​ - Selenium WebDriver client for Go
  • ​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
  • ​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.
  • ​Wukong​​ - A highly extensible full-text search engine written in Go.
  • ​gotenv​​ - Loads environment variables from .env

Music

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.
  • ​createsend-go​​ - API client for Monitor http://www.campaignmonitor.com (email campaign service)
  • ​VDED​​ - Vector Delta Engine Daemon - track deltas in ever-increasing values (written in Go)
  • ​circle​​​ - Go interface to the ​​libcircle​​ distributed-queue API
  • ​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.
  • ​glibvnc​​ - Go wrapper using CGO for the libvnc library.
  • ​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.
  • ​nagiosplugin​​ - package for writing Nagios/monitoring 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
  • ​gosocks​​ - A SOCKS (SOCKS4, SOCKS4A and SOCKS5) proxy client library in Go.
  • ​go9​​ - an implementation of the 9P distributed file system protocol
  • ​go9p​​ - 9p protocol implementation in Go
  • ​goagain​​ - zero-downtime restarts 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
  • ​gonetcheck​​ - package for checking general internet access
  • ​gopacket​​ - Packet encoding/decoding, pcap/pfring/afpacket support, TCP assembly, and more!
  • ​gopcap​​ - A simple wrapper around libpcap
  • ​goprotobuf​​ - the Go implementation of Google's Protocol Buffers
  • ​gogoprotobuf​​ - another Go implementation of Protocol Buffers, but with extensions and code generation plugins.
  • ​golang_protobuf_extensions​​ - Protocol Buffer extensions to support streaming message encoding and decoding.
  • ​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.
  • ​Inbucket​​ - Inbucket is an email testing service; it will accept messages for any email address and make them available to view via a web interface.
  • ​ipaddr​​ - basic functions for the manipulation of IP address prefixes and subsequent addresses as described in RFC 4632 and RFC 4291.
  • ​ipaddress​​ - Convenient ip address functions: ip -> int, int -> ip, and IPNet broadcast address
  • ​iris​​ - Peer-to-peer messaging for back-end decentralization.
  • ​iris-go​​ - Go binding for the Iris decentralized messaging framework.
  • ​kafka.go​​ - Producer & Consumer for the Kafka messaging system
  • ​ldap​​ - Basic LDAP v3 functionality for the GO programming language.
  • ​NATS​​ - NATS distributed messaging system client for Go
  • ​netsnail​​ - A low-bandwidth simulator
  • ​npipe​​ - a pure Go wrapper for Windows named pipes
  • ​netutils​​ - Simple interface for turning TCP Sockets into channels.
  • ​opendap​​ - Go wrapper for Openldap
  • ​protorpc​​ - Google Protocol RPC for Go and C++
  • ​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
  • ​traceroute​​ - A traceoute implementation
  • ​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.
  • ​zmq4​​ - A Go interface to ZeroMQ (zmq, 0MQ) version 4.
  • ​Grumble​​ - Mumble (VoIP) server implementation
  • ​go-sslterminator​​ - SSL terminator proxy
  • ​gobench​​ - HTTP/HTTPS load test and benchmark tool
  • ​Gorilla WebSocket​​ - WebSocket protocol implementation
  • ​apiproxy​​ - proxy for HTTP/REST APIs with configurable cache timeouts
  • ​httpfstream​​ - streaming append and follow of HTTP resources (using WebSockets)
  • ​goproxy​​ - a programmable HTTP proxy.
  • ​zero-downtime-daemon​​ - Configurable zero downtime daemon (Hot Update) framework for any kind of TCP,HTTP,FCGI services
  • ​boom​​ - HTTP(s) benchmarking tool, Apache Benchmark replacement

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
  • ​ircflu​​ - IRC bot with support for commands, scripting and web-hooks

Operating System Interfaces

Other Random Toys, Experiments and Example Code

P2P and File Sharing

Programming

Scanner and Parser Generators

  • ​ebnf2y​​ - Utility for converting EBNF grammars into yacc compatible skeleton .y files.
  • ​fsm​​ - FSM (NFA, DFA) utilities.
  • ​golex​​ - Lex/flex like fast (DFA) scanners generator.
  • ​gocc​​ - Go Compiler Compiler
  • ​gopp​​ - Go Parser Parser
  • ​Ragel​​ - State Machine Compiler

Simulation Modeling

  • ​godes​​ - Library for building discrete event simulation models

Sorting

  • ​funnelsort​​ - Lazy funnel sort -- a cache-oblivious sorting algorithm
  • ​Sortutil​​ - Nested, case-insensitive, and reverse sorting for Go.
  • ​sortutil​​ - Utilities supplemental to the Go standard "sort" package
  • ​tarjan​​ - Graph loop detection function based on Tarjan's algorithm
  • ​timsort​​ - Fast, stable sort, uses external comparator or sort.Interface

Source Code Management

  • ​go-deps​​ - Analyzes and recursively installs Go package deps (library functionality similar to go get)
  • ​go-pkgs​​ - Finds all matching packages in all of the GOPATH trees (library functionality similar to go list all)
  • ​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.
  • ​go-vcs​​ - clone and check out revs of VCS repositories (git and hg support)
  • ​go-vcsurl​​ Lenient VCS repository URL parsing library

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
  • ​gettext-go​​ - GNU's gettext support, written in pure Go
  • ​go-guess​​ - Go wrapper for libguess
  • ​go-migemo​​ - migemo extension for go (Japanese incremental text search)
  • ​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.
  • ​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
  • ​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
  • ​segment​​ - An implementation of Norvig's recursive word segmentation algorithm
  • ​strogonoff​​ - Stenography with Go
  • ​strutil​​ - Package strutil collects utils supplemental to the standard strings package.
  • ​text​​ - Text paragraph wrapping and formatting
  • ​go-colortext​​ - Change the color of the text and background in the console, working both in Windows and other systems.
  • ​goskirt​​ - Upskirt markdown library bindings for Go

Testing

  • ​downtest​​ - Automatically run tests for all known downstream consumers of a Go package.
  • ​go2xunit​​ - Convert "go test -v" output to xunit XML output
  • ​go.assert​​ - helper functions for the built-in 'testing' package (deleted)
  • ​goautotest​​ - Automatically run unit tests when code changes are made
  • ​GoConvey​​ - Browser-based reporting, uses go test, supports traditional Go tests, clean DSL
  • ​gocov​​ - Code coverage testing/analysis tool
  • ​ginkgo​​ - BDD Testing Framework for Go.
  • ​Gocheck​​ - Rich test framework with suites, fixtures, assertions, good error reporting, etc
  • ​gomega​​ - Ginkgo's Preferred Matcher Library.
  • ​gomock​​ - a mocking framework for Go.
  • ​GoSpec​​ - a BDD framework
  • ​gospecify​​ - another BDD framework
  • ​go-stat​​ - performant instrumentation/profiling for Go
  • ​go-tap​​ - TAP (Test Anything Protocol) parser in Go
  • ​GSpec​​ - Concurrent, minimal, extensible and reliable framework that makes it easy to organize and verify the mind model of software.
  • ​Nitro​​ - A quick and simple profiler For Golang
  • ​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.
  • ​Tideland CGL Asserts​​ - Make asserts during testing and inside of your applications

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
  • ​monkey​​ - Embed SpiderMonkey, the Mozilla JavaScript engine, in your Go program.
  • ​go-v8​​ - V8 JavaScript engine bindings for Go
  • ​gomruby​​ - mruby (mini Ruby) bindings for Go

Web Applications

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.
  • ​totp​​ - Time-Based One-Time Password Algorithm, specified in RFC 6238, works with Google Authenticator
  • ​dgoogauth​​ - Go port of Google's Authenticator library for one-time passwords
  • ​go-http-auth​​ - HTTP Basic and HTTP Digest authentication
  • ​httpauth​​ - HTTP session (cookie) based authentication and authorization
  • ​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

Frameworks and Toolkits

  • ​Martini​​ - Martini is a popular, lightweight, extensible package for writing modular web apps/services in Go
  • ​Beego​​ - Beego is an open source version of the scalable, non-blocking web framework.
  • ​Go-Blog​​ - Blog framework written in Go
  • ​Golanger​​ - Golanger Web Framework is a lightweight framework for writing web applications in Go.
  • ​fcgi_client​​ - Go fastcgi client with fcgi params support
  • ​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.
  • ​HttpRouter​​ - A high performance HTTP request router that scales well
  • ​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
  • ​Tiger Tonic​​ - framework for building JSON web services inspired by Dropwizard
  • ​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)
  • ​xweb​​ - A web framework for Go. Just like Struts for Java.
  • ​forgery​​ - A clone of the superb Node.js web framework Express.

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
  • ​revel-csrf​​ - Cross-Site Request Forgery (CSRF) attacks prevention for the Revel framework

Public API Wrappers

Other

  • ​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
  • ​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
  • ​goreman​​ - foreman clone
  • ​goroute​​ - A very simple URL router based on named submatches of regular expression that works well with http.Handler .
  • ​gorouter​​ - Simple router for go to process url variables
  • ​goscribble​​ - An MPD Audioscrobble
  • ​GoSrv​​ - A Go HTTP server that provides simple command line functionality, config loading, request logging, graceful connection shutdown, and daemonization.
  • ​grender​​ - Go static site generator
  • ​halgo​​​ - ​​HAL​​-compliant API client and serialisation library.
  • ​http-gonsole​​ - Speak HTTP like a local. (the simple, intuitive HTTP console, golang version)
  • ​httprpc​​ - HTTP RPC codecs (json2, soap, rest)
  • ​HypeCMS​​ - A flexible CMS built with Go and MongoDb.
  • ​Kontl​​ - A client for kon.tl's URL shortening service
  • ​mustache.go​​ - an implementation of the Mustache template language
  • ​muxer​​ - Simple muxer for a Go app without regexp
  • ​Optimus Sitemap Generator​​ - A universal XML sitemap generator
  • ​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.
  • ​RSS-Go​​ - RSS and ATOM feed reader package for the Go programming language.
  • ​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.
  • ​gorefit​​ - A library for theming existing websites

Windows

Unix

Unsorted; please help!

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