Skip to content
A memcached binary protocol toolkit for go.
Pull request Compare This branch is 97 commits behind dustin:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
client
gocache
server
.gitignore
README.markdown
mc_constants.go
mc_constants_test.go
mc_req.go
mc_req_test.go
mc_res.go
mc_res_test.go

README.markdown

gomemcached

This is a memcached binary protocol toolkit in go.

It provides client and server functionality as well as a little sample server showing how I might make a server if I valued purity over performance.

Server Design

overview

The basic design can be seen in gocache. A storage server is run as a goroutine that receives a MCRequest on a channel, and then issues an MCResponse to a channel contained within the request.

Each connection is a separate goroutine, of course, and is responsible for all IO for that connection until the connection drops or the dataServer decides it's stupid and sends a fatal response back over the channel.

There is currently no work at all in making the thing perform (there are specific areas I know need work). This is just my attempt to learn the language somewhat.

Something went wrong with that request. Please try again.