Pages

Monday, 23 October 2017

用go写的库

This are various libraries implemented in the Go programming language.
Please contact me if you know of any others not listed here.

Databases

  • go-cdb- Library to read and write D. J. Bernstein’s cdb (“constant database”) format. By John Barham.
  • gocouch- A CouchDB client library written in Go. By Michael Hoisie.
  • gofluid – FluidDB client library for Go by rossdjones (repo is down?)
  • go datamapper- ActiveRecord-like database wrapper for Go by Josh Goebel.
  • go-db- A generic database API (obsolete).
  • HandlerSocket-GO- Go client library to talk directly to InnoDB using the HandlerSocket protocol. By Brian Ketelsen.
  • Neo4j-Go – REST client for the Neo4j graph database. By Dave Meehan.

SQL Databases

  • PostgreSQL
    • pq- PostgreSQL client library in pure Go developed at Heroku. By Blake Mizerany.
    • go-pgsql – Client library for version 3.0 of the PostgreSQL protocol (PgSQL 7.4 and above). By Alexander Neumann.
  • MySQL
    • GoMySQL- A quite complete threadsafe MySQL client library written in Go. By Phil Bayfield.
    • mysql-connector-gois a package to connect to MySQL from Go by Gerben Peters.
    • MySQL Client LibraryA MySQL client lib in Go. By thoj.
    • MyMySQL – Another MySQL client library written in pure Go. By Michał Derkacz.
  • MongoDB
    • mgo- Driver for MongoDB. By Gustavo Niemeyer.
    • gomongo – Go driver for MongoDB by Michael Stephens.
  • Redis
    • redis.go- Powerful Redis client library. By Michael Hoisie.
    • Go-Redis- Client and Connectors for Redis’ key-value store. By Joubin Houshyar (aka alphazero).
    • godis – Another Redis client. By Simon Zimmermann.

Memcache

  • gomemcache- Memcached client library. By Brad Fitzpatrick (the original author of memcache!).
  • gomemcache – Another memcache client implemented in Go. By Krzysztof Kliś (aka kklis).

Storage and File Systems

  • govt – Client and server implementations of the Venticontent-addressable-storage protocol. By Latchesar Ionkov.
  • go-fuse- Pure Go library to build FUSE file systems. By Han-Wen Nienhuys.
  • fsnotify – Cross platform file system change notification library. By Chris Howey.

File Formats

  • gocsv- Library to parse and generate CSV (Comma-Separated Values) files. By consalus.
  • golang-mime-multipart- MIME multipart parser. By Brad Fitzpatrick.
  • mimeparse- Simple library to handle mime-types. By Joe Gregorio.
  • go-libGeoIP- Library to access Maxmind GeoIP database. By Nikola Ranchev.
  • asn1-ber- Library for ASN1 BER encoding and decoding. By Michael Mitton.
  • marc21- Library to read and write MARC21 bibliographic catalogue records. By William Waites.
  • xlsx – Library to read Microsoft Excel xlsx files. By Geoff Teale.

Compression

  • snappy-go – Implmentation of the Snappy compression format. By Nigel Tao and the rest of the Go team at Google.

S-Expressions Parsers

  • sexp- An S-Expression library for Go. By Eleanor McHugh.
  • gsx- A configurable S-Expressions parser. By jimt.
  • gosexp – Simple S-Expression parser. By Corey Thomasson.

YAML Parsers

yaml – Parser for YAML 1.2. By Ross Light. goyaml – Pure Go YAML parser based on LibYAML. By rlight2. go-gypsy – Parser for a simplified subset of YAML. By Kyle Lemons.

Web

  • fcgigo- A FastCGI implementation in Go. By Jesse Dailey.
  • gofastcgi- by Eric Moritz.
  • cgi.go- A simple ‘plain-old’ CGI library (Probably obsolete now that there is CGI support in Go’s standard HTTP library.) By nebukadnezzar.
  • go-pkg-rss- A package to read RSS and Atom feeds, providing a caching mechanism that adheres to the feed specs. By Jim Teeuwen.
  • godom- A small library that implements a very small, non-compliant subset of the W3C DOM Core. By Jeff Schiller (aka codedread) and metaphorically.
  • bwl (“Bob’s Wonderful Go Libraries“) – A set of libraries to help build web sites in Go. By Bob Appleyard.
  • httplib.go- ‘Low level’ client HTTP library that provides keep-alive connections and generic requests. By Michael Hoisie.
  • http_digest.go- Implementation of HTTP’s Digest Auth. By Taru Karttunen.
  • go-socket.io- Backend implementation of the socket.io web-browser transport transport abstraction. By Jukka-Pekka Kekkonen.
  • goautoneg- HTTP Content-Type Negotiation, match the Accept header against MIME types. By the Open Knowledge Foundation.
  • pusher.go- HTTP Server Push library conforming to the Basic HTTP Push Relay Protocol. By Jukka-Pekka Kekkonen.
  • seshcookie- A web session library inspired by Beaker. By Bobby Powers.
  • wedge- Simple package to help cut down on boilerplate code when writing webapps. By Aaron France.
  • m2go- Mongrel2 Handler for Go. By Aaron Raddon.
  • gomesh- Simple HTML decoration library. By Chandra Sekar S.
  • goquery – Jquery style selector engine for HTML documents. By Dobronszki János.

Web Frameworks

  • mango- Modular web-application framework inspired by Rack and PEP333. By Paul Bellamy.
  • web.go- A simple framework to write webapps in Go. By Michael Hoisie.
  • Goldorak.Go- A Go web miniframework built using mustache.go, web.go and Go-Redis. By Bruno Michel.
  • goweb- RESTful and lightweight wrapper framework around the stdlib http package. By Mat Ryer.
  • wfdr- Another simple web framework. By crazy2be.
  • go-webproject- Easy to use small framework for web programming in Go. By Zeljko Tomic.
  • Gorilla – Gorilla is a minimalist web toolkit built on top of the stdlib Go http package. By Rodrigo Moraes.

WebSockets

  • Rocket – Very fast and reliable WebSockets server/framework/library. By Chris Kowalik.

Templating

  • mustache.go- A Go implementation of the Mustache template language. By Michael Hoisie.
  • kasia.go- Implementation of the Kasia text templating system. By Michał Derkacz.
  • neste – Extended version of Go’s template package for generating textual output from nested templates. By Juhani Ahman.

Web Services and Clients for Web APIs

  • go-flickr- A wrapper for Flickr’s WEB API. By Nolan Caudill of Flickr.
  • go-flickr- An older client lib for the flickr API. By Frederic Gobry.
  • go-twitter-oauth- A simple Twitter (and supporting OAuth code) client for the Go programming language by Samuel Montgomery-Blinn.
  • twitterstream- Client library for Twitter’s streaming API. By Michael Hoisie.
  • go-twitter- Another twitter lib in Go, this one by Bill Casarin.
  • get2ch-go- A library to access the 2channel Japanese web bulletin board. By tanaton.
  • go-pkg-lastfm- A library to access the entire Last.fm 2.0 webservice API, including the authenticated services. By Jim Teeuwen.
  • goamz- Client library to access Amazon Web Services. By Canonical’s Ensemble project.
  • go-ghissues- Client lib for Github’s Issues API. By Justin Lilly.
  • go-dealmap- Library to access the DealMap API. By Michael Lore.
  • go-tripit – Library to access the TripIt API. By Michael Lore.

OAuth

  • gooauth- OAuth 1.0 package. By Calvin McAnarney.
  • goauth- Another OAuth 1.0 package. By Adam Lloyd.
  • twister/oauth – OAuth package including OAuth 2.0 support, this one part of the twister HTTP server. By Gary Burd.

Graphics

  • x-go-binding- Go ‘bindings’ to the X11 protocol, equivalent to XCB. Maintained by Nigel Tao and the Go team.
  • svgo- A library for generation of SVG vector graphics files. By Anthony Starks.
  • bmp.go (http://gopaste.org/w0D8b – Down) – Simple Package to Handle encoding/decoding Windows BMP files by Ralph Sleigh.
  • pdfreader- A library to read the contents of PDF files. By helmwo.
  • freetype-go- A rewrite of the Freetype font engine in Go. By Nigel Tao.
  • scale- Image rescaling algorithms. By Mathieu Lonjaret.
  • draw2d- A postcript-inspired 2D drawing package. By Legoff Laurent.
  • graphics-go – Basic image manipulation operations library in Go. By some of the members of the Go team at Google and others.

Graphical User Interfaces and Toolkits

  • canvas- A widget and drawing library using exp/draw and freetype/raster. By Rog Peppe.
  • gui – GUI Widget library. By David Roundy.

Distributed Computing

  • gocluster- Implementation of a clustering heuristic in Go using a particle swarm optimization technique. By willscott and bart broad.
  • go-router- A package for peer-peer publish/subscribe message passing. By Yigong Liu.
  • goman- Gearman client. By Brad Fitzpatrick.
  • gozk – Allows communication with ZooKeeper clusters. By Canonical.

IRC and IM

  • irc.go- Go IRC bot framework. By Gracenotes (aka Matt Gruen).
  • Calculon- A concurrent IRC bot with support for runtime (un)loadable modules and configurable via a web interface. By Jim Teeuwen (aka exch).
  • Go-IRC-Client-Library- What the name says. By Thomas Jager.
  • goirc- Event-based stateful IRC client framework for Go by Alex Bramley (aka fluffle).
  • GoTY (Go Troll Yourself) – Minimalist client irc library by Samuel Baldwin (aka shardz).

Other Network Protocols

  • go9p- 9p protocol implementation in Go by Andrey Mirtchovski and Latchesar Ionkov.
  • go9 – An implementation of the 9P distributed file system protocolin go by KillerX.
  • gostomp- Implementation of the STOMP (Streaming Text Orientated Messaging Protocol) messaging protocol. By nf.
  • goprotobuf- Google’s Protocol Buffers for Go. Maintained by the Go team.
  • thrift – Initial work on Thrift for Go. By Anatol. (deprecated)
  • thrift4go- A more uptodate Thrift for Go with rpc support. By Aalok Shah.
  • GoSMPP- A library implementing the SMPP messaging protocol. By Phil Bayfield.
  • go-wave-robot-api- A library for writing Google Wave ‘robots’. By Andrew Gerrand(of the Go team).
  • go-gntp- An implementation of the Growl Network Transport Protocol(GNTP). By Yasuhiro Matsumoto (aka mattn).
  • GoDCCP- Implementation of the Datagram Congestion Control Protocol. By Petar Maymounkov.
  • nntp-go- Implementation of the NNTP newsgroups protocol. By Conrad Meyer and the Go team.
  • GoNetlink- Netlink sockets implementation. By James Nurmi.
  • ldap- Basic LDAP v3 client library. By Michael Mitton.
  • spdy- An implementation of the SPDY protocol in Go. By Ross Light.
  • ssh.go- SSH2 client implementation. By Taru Karttunen.
  • FTP:
    • goftp- FTP client library. By Julien Laffaye.
    • ftp.go – Another FTP client library. By smallfish.

DNS

  • godns- An alternative DNS libary. By Miek Gieben.
  • go-idn – Go version of libidn, handling the specs for: IDNA, punycode, stringprep and a fully working Unicode normalization. By Hannes Ármann Baldursson.

General Networking

  • GoNeedle – System that ‘punches’ reliable transport ‘holes’ over UDP through NATs and Firewalls. By Petar Maymounkov.

Programming

  • iterutils- Implements functions from Python’s itertools module, by Michael Elkins.
  • go-parse- A Parsec-like parsing library for Go by Alex Suraci (aka vito).
  • go-stringio- Library implementing the various file I/O interfaces using memory buffers instead of real files. By Yongjian Xu.
  • go-galib- A library of Genetic Algorithms written in Go. By Thomas Jager.
  • godeferred- Re-implementation in Go of the JSDeferred async processing framework. By Yasuhiro Matsumoto (aka mattn).
  • bloom- Libary implementing bloom filters. By willf.
  • bayesian – Naive Bayesian classification library. By jbrukh.

Go

  • go-pkg – Parse and extract information from Go package files. By bobappleyard.

Data Structures and Containers

  • go-intset- A library to work with bounded sets of integers, including multiple alternative implementations. By Peter Froehlich.
  • gosets- A package that implements set types for Go. By Peter Williams.
  • go-btree- BTree library using gotgo. By runningwild.
  • seq- Functional, concurrent and sequential sequences. By Bill Burdick.
  • deepcopy- Deep datastructure copying using reflect. By Taru Karttunen.
  • GoLLRB- Left-Leaning Red-Black (LLRB) implementation of balanced binary search trees. By Petar Maymounkov.
  • go-avltree- AVL tree (Adel’son-Vel’skii & Landis). By Michael Lore.
  • skip.go- Skip lists implementation. By Taru Karttunen.
  • bitset- Package implementing bitsets. By Will Fitzgerald.
  • treap – A balanced binary tree data structure, expected to have logarithmic height. By StatHat.

System and Low Level Programming Tools

  • coffer- Package for copying data between memory ranges managed by C code and Go Buffers (uses cgo, so technically not a ‘pure Go lib’, but neither a binding for an existing C lib). By Stefan Plantikow.
  • gonewrong- Package for dealing with C errors and locking go routines to OS threads. By Stefan Plantikow.
  • gommap – Library providing a convenient interface for the mmap syscall. By Gustavo Niemeyer.

Debugging and Performance Profiling

  • Go-PerfEvents- Go interface to performance events which are available in recent Linux kernels. By 0xe2-0x9a-0x9b (aka ⚛).
  • gotimer – A simple way to time Go functions. By Sonia Keys.

(Unit) Testing

  • gocheck- A more advanced testing framework alternative to gotest. By Gustavo Niemeyer.
  • blur- Fuzzer for Go structs using reflection to identify and alter fields. By Scott Dunlop.
  • GoSpec- A BDD framework for Go, by Esko Luontola.
  • gospecify- Another BDD library for Go by Samuel Tesla.
  • gomock- Mocking framework. By David Symonds.
  • mockhttp.go- Mock object for Go http.ResponseWriter. By Tommi Virtanen (aka Tv).
  • assert- Assertions for Go tests. By Blake Mizerany and Keith Rarick.
  • hamcrest – Hamcrest matchers. By Mick Killianey.

Command Line UI

  • goargcfg- Fills a struct with command line arguments using reflection. By jasmuth.
  • optparse-goA command-line option parser for Go by Kirklin McDonald.
  • goopt- Getopt clone to parse command-line flags. By David Roundy.
  • opts.go- Library providing POSIX-like and GNU-style command line parsing. By Scott Lawrence.
  • clingon- Package for implementing command-line interfaces for games and graphical applications. By Andrea Fazzi.
  • pty – A package to interact with Unix pseudo-terminals. By Keith Rarick.

Cryptography

  • pkbfd2-
  • crypto-fortuna- An implementation of the Fortuna CSPRNG (Cryptographically Strong Pseudo-Random Number Generator). By Raif S. Naffah.
  • Various crypto libs by Taru Karttunen (aka taruti):
    • Envelopes- Public key and/or passwords, encrypting a large envelope of data.
    • HashedBuf – A Readerthat hashes the contents it reads.
    • PBKDF2- Implementation of PKCS#5/PKBDF2/HMAC password hashing functions.
    • aes_xts.go- AES XTS encryption.
    • SRP – Secure Remote Password protocol.
  • freecrypto- A collection of ‘free’ crypto algorithms translated from the “Crypto++” library. By John Mac.
  • gohasher – A libray to build password hashes, similar to Unix’s crypt(3). By John Mac.
  • go-rabbit- Implementation of Rabbit encryption algorithm. By syndtd.
  • go-salsa20 – Implementation of the Synchronous Stream Cipher Salsa20 and its variants Salsa20/8 and Salsa20/12. By syndtd.

Math

  • gomatrix- A linear algebra package for go. By skelterjohn.
  • gocomplex- A complex number library for Go by michaelsmith.
  • mudlark-go-pkgs- Libraries implementing various kinds of set, and tree data structures and sorting algorithms. By Peter Williams.
  • gostat- Statistics package. By skelterjohn.
  • gofrac – A fractions library with support for basic arithmetic. Note that this is partially superseded by the arbitrary precision Rat type in the standard library’s bigpackage. By Anschel Schaffer-Cohen.
  • s3dm-go- Simple 3D math library. By Tommo.
  • geom- 2D geometry lib. By John Asmuth (aka skelterjohn).
  • blas- Go implementation of BLAS (Basic Linear Algebra Subprograms). By Michał Derkacz.
  • go-fn- Mathematical functions that are not covered by math pkg. By Peter A. Cejchan.
  • go-gt – Graph theory algorithms. TSP, QAP, and other stuff. By Peter A. Cejchan.

Games

  • fungo- A library to help write 2D games in Go. By beoran.
  • gnarly- UDP-based networking for multiplayer gaming. By jimt.
  • go-rpg- Library to write role playing games. By Jeremy Stephens.
  • Box2d-go – Rewrite in Go of the Box2d physics engine. By Matteo Goggi.

Path Finding

  • astar- Implementation of the A* (A star) pathfinding algorithm. By the Eurobot-NTNU 2012 team.
  • gopathfinding – Small package that implements pathfinding algorithms. By Alex Plugaru.

Text and String Manipulation

  • sre2- Reimplementation in Go of Russ Cox’s RE2 C++ regular expressions library. By Sam Thorogood.
  • go-luapatterns- A ‘translation’/reimplementation in Go of Lua’s string pattern matching, including non-greedy matching. By Jim Whitehead II.
  • scanner – A text scanner that parses primitive types, analogous to Java’s java.util.Scanneror C’s scanf(3). By yukuku.
  • gostrutils- A package containing StringTokens and StringBuffer analogous to StringTokenizer and StringBuffer in Java. By Abiola Ibrahim.
  • go substrs- A container for substring results of pattern matching operations. By James Frasche.
  • pystring – Python-like string objects for Go

Charset and Text Encoding Conversion

  • go-charset- Library to convert various character encoding to and from UTF-8, based on Inferno’s convcs. By Rog Peppe.
  • mahonia – Character-set conversion library. By Andy Balholm.

Text Formatting

  • markdown- A translation of peg-markdown to Go. By knieriem.
  • blackfriday – Translation of the the upskirt C library to Go. By Russ Ross.

XML

  • 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. By Jim Teeuwen.
  • xmlm – Struct marshaling and unmarshaling to and from XML, depends on xmlx. By Daniel Smith.

RPC

  • go-xmlrpc- Rudimentary client and server implementation of the XML-RPC protocol. By Daniel Smith.
  • http_jsonrpc.go – JSONRPC server library with support for Service Mapping Descriptions. By Taru Karttunen.

Operating System Specific Interfaces

  • goplan9- Go libraries for interacting with Plan 9. By Russ Cox and Rob Pike.
  • go-sysuser – Access Unix user information from the databases passwd, group, shadow, and gswadow. By John Mac.

Configuration Files

  • goconfig- Another fork of goconfig with more features and better documentaiton. By John Mac.
  • goconf – A fork of goconfigthat updates it to build with newer Go release and adds some new features. By Stephen Weinberg (aka smw).
  • goconfig – Parser for ‘configuration’ files with a format similar to Windows INI files. By Miguel Branco.

Scientific Modeling and Simulation

  • GoGCM – A General Circulation Model (GCM). By Arrow.

Other Sciences

  • go-eco- Functions for use in (paleo)ecology. Similarity / distance matrices; diversity measures. By Peter A. Cejchan.
  • cartconvert – Cartography functions to manipulate coordinates. By Johann Höchtl.

Misc

  • pretty.go- Pretty-printing for Go values. By Keith Rarick.
  • tamias- A port of Chipmunk Physics to Go. By Beoran.
  • tideland-cgl- Tideland Common Go Library. By themue.
  • go-pkg-mpd- A library to access the MPD music daemon. By Jim Teeuwen.
  • Go MapReduce- Simple implementation of MapReduce. By Dan Bravender.
  • bigendian- Binary parsing/printing. By Taru Karttunen.
  • captcha- Library to generate and verify image and audio CAPTCHAs. By Dmitry Chestnykh.
  • gosms- A package to send SMS using the bulksms.com API. By Leon Szpilewski.
  • finance- Package for finantial operations, including a Money type with a fixed-length guard for precision arithmetic. By Confunctionist.
  • dbus-go – D-Bus library. By Nigel Tao and other members of the Go team.

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.

Distributed/Grid Computing

  • 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.
  • godbm (Dead? https://github.com/tux21b/godbm) – Simple DBM-like package similar to Berkley DB, QDBM or Kyoto Cabinet. By Christoph Hack.
  • gocask- Implementation of Riak’s Bitcask key value store. By André Moraes.
  • DBGo – Light-weight relational database engine. By Houzuo Guo.

Games

  • 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.
  • Minecraft:
    • 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.

Emulators

  • gospeccy- A ZX Spectrum Emulator with an SDL backend. By Andrea Fazzi.
  • gb – Minimalist Gameboy emulator. By aiju.

Music

  • goplayer- Web-based music player. By Andrew Gerrand.
  • gompd- A client interface for the MPD (Music Player Daemon), by fshahriar.
  • chubd (Dead? https://github.com/vchumushuk/chubd) – MPD-like music player daemon. By Viacheslav Chumushuk.

Caches

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).
  • Lisps/schemes:
    • 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.
  • Forth:
    • 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.

Command line tools / Shells

  • oh- A new Unix shell. By Michael MacInnis.
  • gobox(Dead? https://github.com/asdf-systems/gobox) – Busybox-like toolbox in Go. By Alexander Surma.

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.
  • file2http – Spray a line-oriented file at an HTTP endpoint. By bitly.

Web Apps

  • 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.

Blogging Engines

  • 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.

P2P and File Sharing

  • gobit- Bittorrent Client in Go by jessta.
  • Taipei-Torrent- Another BT client, by jackpal.
  • 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é.

IRC

  • 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.

Networking Tools and Servers

  • grong- Small authoritative DNS name server by Stéphane Bortzmeyer (aka bortzmeyer)
  • netsnailA 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.

Email

  • 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.

Text Editors

  • tabby- Lightweight Go editor written using the go-gtk bindings. By mikhailt.
  • dv – Dvi text editor. By David Forsythe.

Bug Tracking

  • entomonitor- A distributed bug tracker. By David Roundy.
  • goissue – A command line tool to interact with the googlecode.com issues database. By mattn.

Programming Tools

  • 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.

Operating Systems

  • 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.

Scientific Computing

  • digest2 – Orbit class probabilities from short arc moving object astrometry. By Sonia Keys.

Twitter

  • 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.

JSON Tools

  • 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.

Misc

  • 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.
  • hackernews-button – Embeddable Hacker News button + vote counter for your site. By Ilya Grigorik.

Character Encodings

  • 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

  • fnd – A better find(1). By Alex Plugaru.

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
from http://go-lang.cat-v.org/pure-go-libs

No comments:

Post a Comment