The main goal of the project is to provide servers and tools to facilitate scaling of MySQL databases for the web. This was predominantly developed in go, and is already being used in a large scale production environment.
As part of the project, we developed a few go packages that could come in handy for other developers:
- bson: bson encoding/decoding that's integrated with go's rpc framework.
- cache: A generic LRU cache.
- logfile: A 'Writer' interface that provides transparent logfile rotation and purging. Works with go's log package.
- mysql: An efficient brain-dead client to MySQL.
- relog: A wrapper around go's log package that provides a python-like logging API (Info, Warning, etc.).
- rpcwrap: Convenience functions that make it easy to integrate new encoding schemes into go's rpc.
- stats: Provides advanced data types for go's expvar for reporting rates, histograms, etc.
- timer: A wrapper around ticker for managing house-keeping goroutines that need to regularly wake up and run.
- umgmt: A package that lets you restart your http-server with zero downtime.
We have yet to migrate the build system to use the new go tool. So, the recommended go release for these packages is weekly.2012-01-27.