Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A memcached binary protocol toolkit for go.
Go
branch: master

Fix relative links in README

Close #15
latest commit 2ea451e47a
Ross Smith II rasa authored committed
Failed to load latest commit information.
client Document empty key for toplevel stats
debug Fix godoc
gocache errcheck cleanup
server api break: Return bytes read/written on low-level send and receive
.gitignore
LICENSE
README.markdown Fix relative links in README
mc_constants.go Added support for OBSERVE call.
mc_constants_test.go Test CommandCode.IsQuiet
mc_req.go api break: Return bytes read/written on low-level send and receive
mc_req_test.go api break: Return bytes read/written on low-level send and receive
mc_res.go api break: Return bytes read/written on low-level send and receive
mc_res_test.go api break: Return bytes read/written on low-level send and receive
tap.go
tap_test.go Test malformed bucket list in tap parsing.

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.