Go Programs and Apps
Here are links to some of the code people have written in Go so far, for libraries see the list of libraries written in Go and for Go programming tools see the Go utils page.
- malus - A Kademlia-compatible DHT(Distributed Hash Table) written in Go by Michael Meier.
- Cloud-Backups - Small Go utilities to backup data from the cloud, to the cloud. By Yves Junqueira.
- Tonika - A distributed framework for building secure social networks. By Petar Maymounkov.
- doozer - A lockservice in Go. By Blake Mizerany and Keith Rarick.
- gproc - A HPC cluster management tool. By Ron Minnich, Noah Evans, Jason Dreisbach, and John Floren.
- scpu - SSH client modeled after Plan 9’s cpu(1) command. By Taru Karttunen.
- skynet - Distributed services framework. By Brian Ketelsen.
- Termite - Generic distributed compilation system. By Han-Wen Nienhuys.
- Orchestra - System for managing the reliable execution of tasks over a number of hosts. By Anchor.
- noeqd - Fault-tolerant network service for GUID generation. By Blake Mizerany at Heroku.
Databases and Structured Storage
- diskv - Disk-backed key-value store. By Peter Bourgon.
- gocask - Implementation of Riak’s Bitcask key value store. By André Moraes.
- DBGo - Light-weight relational database engine. By Houzuo Guo.
- cbfs - Distributed Blobstore using Couchbase Server. By Couchbase Labs.
- tiedot - NoSQL database using JSON for document storage and queries. By Huozuo Guo.
- amberfell - Steampunk-Minecraft-like game. By Ian Davis.
- Gongo - A program written in Go that plays Go. By Brian Slesinsky.
- teratogen - A rogue-like game using SDL by Risto Saarelma.
- FlexBot - A flexible bot for the Spring RTS engine implementing the ‘lobby protocol’. By Marcel Hauf.
- http://gist.github.com/379723 - A simple game of Pong. By Michael Fellingerat.
- raptgo - A shooter game based on Raptor. By Michael Fellingerat.
- gotris - Tetris! (Depends on the latest Go-SDL). By nsf.
- aBridge - Webapp to analyze bridge bidding, a demo installation can be found here. By David Roundy.
- Apollo - Prototype Go based game using websockets and HTML5 Canvas. By Jason Del Ponte.
- rumpetgo - A Go backend for Rumpetroll. By Andrew Gerrand.
- Chunky Monkey - A multiplayer server for Minecraft Alpha. By Stefan Hajnoczi; updated by Huin.
- gomine - Minecraft server-wrapper/mod that acts as a Twitter gateway. By Yves Junqueira.
- gospeccy - A ZX Spectrum Emulator with an SDL backend. By Andrea Fazzi.
- gb - Minimalist Gameboy emulator. By aiju.
- goplayer - Web-based music player. By Andrew Gerrand.
- gompd - A client interface for the MPD (Music Player Daemon), by fshahriar.
- chubd (Sleeping? https://github.com/vchimishuk/chubd) - MPD-like music player daemon. By Viacheslav Chumushuk.
Virtual Machines and Languages
- GoLightly - A flexible and lightweight virtual machine with runtime-configurable instruction set. By Eleanor McHugh.
- RubyGoLightly - An experimental port of TinyRb to Go by Eleanor McHugh.
- brainfuck - A brainfuck virtual machine in Go by yiyus.
- prescript - An experimental PostScript-like scripting language. By Jim Teeuwen.
- Tinyscript - PostScript-like language interpreter. By Jim Teeuwen.
- gotcl - Tcl-like language interpreter designed for embedding. By Kyle Consalus (aka consalus).
- golisp - Primitive lisp dialect implemented in Go. By Bob Appleyard.
- golisp - Another simple Lisp implementaiton in Go. By westhood.
- kakapo - Embedded Lisp Interpreter. By Scott Lawrence.
- [go-scheme] (GONE http://github.com/chrislloyd/go-scheme) - Scheme implementation in Go. By Chris Lloyd.
- droscheme - Another Scheme implementation. By Andrew Robbins.
- Gelo - A “Go extension language”. By James Frasche.
- kitten - Small concatenative scripting language with a Syntax that is a mix of Go and Factor. By jimt.
- ngaro - A ngaro virtual machine to run retroForth images by yiyus.
- GoForth - A simple Forth parser. By Artem Titoulenko.
- forego - Another Forth VM in Go. By unixdj.
HTTP Servers and Tools
- twister - An HTTP server and web framework, including OAuth support. By Gary Burd.
- rest.go - RESTful HTTP server and client. By Nathan Kerr.
- go-rproxy - Basic reverse HTTP proxy. By Corey Thomasson.
- gohttptun - TCP tunneling over HTTP. By nf.
- http-gonsole - A simple and intuitive HTTP console. Depends on go-readline. By mattn.
- gb - HTTP benchmarking and stress-testing tool modeled after Apache-Benchmark. By Paulo Suzart.
- Optimus Cache Prime 2 - Smart cache preloader for websites with XML sitemaps. By Patrick Mylund Nielsen.
- mjau - Simple, fast, and flexible web font server. By Robert Dinu.
- file2http - Spray a line-oriented file at an HTTP endpoint. By bitly.
- goresize - An image resizing proxy. By Arnaud Le Blanc.
- goplot - A graphing utility with some curve-fitting features, includes a web interface. by metaphorically.
- webtf - Web app to graphical visualization of twitter timelines using the HTML5
<canvas> tag by Anthony Starks (aka ajstarks)
- goals-calendar - A web-based Seinfeld calendar implemented in Go. By Bruno Michel.
- GoURLShortener - A frontend for the http://is.gd/ URL shortener by Nick Presta.
- gowiki - A simple wiki in Go using web.go and mustache.go. By Andrew Gerrand.
- gopages - A php-like web framework that allows embedding Go code in web pages. By Abiola Ibrahim.
- gogallery - A web image gallery. Mathieu Lonjaret.
- fotoflo - A web app that displays photos from recent tweets. By Gary Burd.
- gopaste (http://github.com/vito/go-play/blob/master/paste.go - Currently unavailable) - The code that runs the gopaste.org (currently down) pastebin. By Alex Suraci.
- bloggo - A lightweight blogging engine. By Brian Ketelsen.
- blogo - Blosxom-like blog server, using web.go and mustache.go. By Yasuhiro Matsumoto.
- lannister - Static website generator using Go’s standard template system. By William Roe.
- fettemama - Blog system with a telnet interface(!). By Leon Szpilewski.
- bloody.go - Simple blog system with a CRUD interface, using web.go, mustache.go and mgo. By TheOnly92.
- lwb - Light Weight Blogging, a siple blogging platform. By Steve Lacey.
Clients for Web Apps
- kontl - Client for the URL shortening service kon.tl. By Jim Geovedi.
- wu - Fast command line weather app that uses the Weather Underground API. By Stephen Ramsay.
- gocrawl - Polite, slim and concurrent web crawler. By Martin Angers.
P2P and File Sharing
- gobit - Bittorrent Client in Go by jessta.
- Taipei-Torrent - Another BT client. By jackpal.
- Taipei-Torrent - More uptodate fork of Taipei-Torrent. By Yves Junqueira.
- gop2p - A simple p2p app to learn Go, by nacmartin.
- ed2kcrawler - eDonkey2000 link crawler by Kevin Watt.
- wgo - A simple BitTorrent client based in part on the Taipei-Torrent and gobit code. By Roger Pau Monné.
- go-bot (aka rndbot) - An irc-bot that executes Go code sent to it and print its output, by Gracenotes. (You can play with it in the #go-run channel in irc.freenode.org)
- jaid - A standards-compliant irc daemon in Go. By kylelemons.
- rbot - IRC bot based on the ideas of MPU and the code of goirc. By raylu.
- hatcog - IRC client for tmux addicts. By Graham King.
Networking Tools and Servers
- grong - Small authoritative DNS name server by Stéphane Bortzmeyer (aka bortzmeyer)
- netsnail A low-bandwidth simulator by Per Arneng.
- godwulf - Gopher server written in Go. By Samuel Alexander Baldwin.
- cascadeauth - Squid authenticator that consults multiple sources. By José Dinuncio.
- godloader - Collection of download tools that tries to follow the Unix philosophy. By Exiquio Cooper-Anderson.
- gorrdpd - RRD (Round-Robin Database) statistics collector in Go. By Dmytro Shteflyuk.
- iothrottler - Package for throttling application IO (such as bandwidth). By Evan Farrer.
- deliverd - Simple SMTP server. By Sam Thorogood.
- goesmtp - An experimental multi-node ESMTP server. By Gary Sims.
Graphics and 3D
- Arclight - Arclight is a tool for rendering images, for more details see this blog post. By hackborn.
- smallpt.go - A port of the smallpt global illumination renderer to Go. By Maurice Gilden.
- postscript-go(http://code.google.com/p/postscript-go/) (Dead?) - An implementation of PostScript using draw2d. By Legoff Laurent.
- goray - Raytracer based on Yafaray. By Ross Light.
- resizer - Resizes images to a ratio just by expanding it (no deformation, no interpolation). By Bruno Michel.
- imgv - Minimalist X image viewer. By Andrew Gallant.
- ansigo - Simple ANSi to PNG converter. By rederic Cambus.
- Pupflow - Pupflow is a plugin for Blender to enable a user to control his rig with common USB joysticks. By Friedrich Wes.
- tabby - Lightweight Go editor written using the go-gtk bindings. By mikhailt.
- dv - Dvi text editor. By David Forsythe.
- entomonitor - A distributed bug tracker. By David Roundy.
- goissue - A command line tool to interact with the googlecode.com issues database. By mattn.
- gitw - A tool to automatically clone and build GIT repositories. By Luka Napotnik.
- addinclude - Utility to add includes to .c and .h files. By Alexander Rødseth.
Go Programming Tools
See the development tools page.
Plan 9/ p9p / Acme
- xplor - A tree-oriented file navigation app for acme. By Mathieu Lonjaret.
- gofinder - Search helper with an Acme UI to look for include files, specific patterns, and regexps. By Mathieu Lonjaret.
Storage, Backups and File Management
- Camlistore - A way to store, sync, share, model and back up content. By Brad Fitzpatrick and others.
- castle - Collection of programs providing a content-addressable store. By Andrew Gerrand.
- gotsync - Parallel tree sync tool. By Brad Fitzpatrick.
- dupfinder - Simple program that finds duplicate files by Daniel Lyons.
- weed-fs - Fast Scalable distributed key-file storage system. By Chris Lu.
- fast-archiver - Command-line tool for archiving directories, and restoring those archives. By Replicon Inc.
- tinygo - A fork of the bare-hardware ‘tiny’ Go runtime with expanded features and functionality. By Jeff Allen.
- gur - Simple archlinux aur helper. By str1ngs.
- digest2 - Orbit class probabilities from short arc moving object astrometry. By Sonia Keys.
- go-tucs - Experimental re-write of TUCS (TileCal Unified Calibration Software) in Go. By Sebastien Binet at CERN.
- gotweet - A simple Twitter command line client. By Dmitry Chestnykh.
- twty - Another command line Twitter client. By mattn.
- Zwitscher - GUI Twitter client using gtk-go. By mogoh.
Crypto and Security
- Kindi - Command line encryption tool. By Uwe Hoffmann.
- goraphing - A tool to generate a simple graph data structures from JSON data files. By metaphorically.
- jsonpp - Fast command line JSON pretty printer. By Jeff Hodges.
- gosphinx - A Go client interface to the Sphinx standalone full-text search engine. By Dmytro Shteflyuk.
- lineup - A minimalistic message queue server by Justin Poliey (jdp).
- tideland-kmr - Tideland Knowledge Management and Retrieval is a wiki.
- iolaus-go - A Go implementation of the ‘iolaus’ distributed version control system. By David Roundy.
- mbpfand - Demon to control the fan speed on MacBooks running Linux. By Leon Szpilewski.
- uniqush - Unified push service for server-side notification to apps on mobile devices. By Nan Deng.
- gyago - Gyazo application written in Go. By mattn.
- vector - Stand-alone proof-of-concept optimizer that uses AI techniques to produce optimal sequences of instructions to compute vector math utilizing SIMD instructions. By scpayson.
- wcld - Network daemon to store logs in a database. By Ryan Smith.
- hackernews-button - Embeddable Hacker News button + vote counter for your site. By Ilya Grigorik.
- hk - Fast Heroku client. By Heroku.
- jvgrep - A grep for text in various popular Japanese encodings. By Yasuhiro Matsumoto (aka mattn)
Tutorials and Other Educational Code
- opengl-go-tutorials - A translation of the NeHe Productions OpenGL tutorials to Go. Requires Go-OpenGL and Go-SDL. By Michael Fellinger.
- goconc - A collection of useful concurrency idioms and functions for Go, compiled by John Asmuth.
- project euler in go - Solutions to Project Euler in Go also by Josh Goebel.
Trading and Gambling
- ArBit - Automated Bitcoin arbitrage trading program. By Teppo Salonen.
- poker-odds - Calculates the odds of getting a particular poker hand in Texas Hold Em. By Colin McCabe.
Command Line / Unix Tools / Shells
- fnd - A better find(1). By Alex Plugaru.
- oh - A new Unix shell. By Michael MacInnis.
- gobox - Busybox-like toolbox in Go. By Alexander Surma.
- goblin - Reimplementation of the Unix/Plan 9 command line tools. By Mjl, Uriel and others.
Systems Administration Tools
- CDNStats - Daemon collecting various statistics from nginx requests. By Anton Ageev.
- goreman - Clone of foreman. By mattn.
Other Random Toys, Experiments and Example Code
- gocalc - A simple graphical calculator built using go-gtk. By Abiola Ibrahim.
- shadergo - shader test using golang by 上山 智士 For more info in Japanese see this page, and a video of the result can be seen here.
- gochat - A ‘stupid’ chat server written in Go by Harry Vangberg (aka ichverstehe).
- lifegame-on-golang - Game of Life in Go. By horiuchi.
- goplay - A bunch of random small programs in Go. By Tim Henderson.
- go-hashmap - A hash table in pure go as an experiment in Go performance. By Peter Froehlich.
- linear - Playing around with the linear algebra. By Christopher Freeman.
- bounce - Bouncing balls inside a window, each ball is controlled by a different goroutine. By Rog Peppe.
- goxscr - Jwz’s Xscreensaver hacks rewritten in Go. By Andrey Mirtchovski.
- go-samp - Collection of Simple Example Go Programs. By Guy M. Allard.
- latvis - Visualizing data from Google Latitude. By mrjones.