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 :
go-toml - Go library for the TOML language
go-toml-config - TOML-based config for Go
toml - TOML parser for Go with reflection
toml-go - An easy-to-use Go parser for the Toml format
gp-config - Subset of TOML syntax with basic and reflection APIs
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
goraph - Graph Visualization, Algorithms
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
Go-MySQL-Driver - A lightweight and fast MySQL-Driver for Go's database/sql package
MyMySQL - MySQL Client API written entirely in Go.
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
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
Go-Redis - Client and Connectors for Redis key-value store
godis - Simple client for Redis
Tideland CGL Redis - Powerful Redis client with pub/sub support.
Redigo - Go client for Redis.
redis - Redis client for Golang
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
cabinet - Kyoto Cabinet bindings for go
cass - Cassandra Client Lib
cdb.go - Create and read cdb ("constant database") files
CodeSearch - Index and perform regex searches over large bodies of source code
couch-go - newer maintained CouchDB database binding
couchgo - The most feature complete CouchDB Adapter for Go. Modeled after couch.js.
dbxml - A basic interface to Oracle Berkeley DB XML
go-db-oracle - GO interface to Oracle DB
go-notify - GO bindings for the libnotify
go-rexster-client - Go client for the Rexster graph server (part of the TinkerPop suite of graph DB tools)
go-sphinx - A sphinx client package for Go, for full text search.
go-wikiparse - mediawiki dump parser for working with wikipedia data
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
JGDB - JGDB stands for Json Git Database
mig - Simple SQL-based database migrations
mongofixtures - A Go quick and dirty utility for cleaning MongoDB collections and loading fixtures into them.
Neo4j-GO - Neo4j REST Client in golang
neoism - Neo4j graph database client, including Cypher and Transactions support.
Optimus Cache Prime - Smart cache preloader for websites with XML sitemaps.
riako - High level utility methods for interacting with Riak databases
Weed File System - fast distributed key-file store
whisper-go - library for working with whisper databases
squirrel - Fluent SQL generation for golang
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
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
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
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.
godev - Web-based IDE for the Go language
gofinder - (code) search tool for acme
golab - go local application builder - a web-based golang ide
tabby - Source code editor
godit - A microemacs-like text editor written in Go.
ViGo - A vim-like text editor.
Conception - Conception is an experimental research project, meant to become a modern IDE/Language package. demo video
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
bloxorz - Solver for bloxorz basic levels
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
Bampf - Arcade style game based on the Vu 3D engine.
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
请发表评论