1
0
mirror of https://github.com/go-gitea/gitea.git synced 2024-11-04 08:17:24 -05:00
gitea/vendor/github.com/couchbase/gomemcached
2021-02-28 18:08:33 -05:00
..
client go1.16 (#14783) 2021-02-28 18:08:33 -05:00
.gitignore Fix recovery middleware to render gitea style page. (#13857) 2021-01-05 21:05:40 +08:00
flexibleFraming.go go1.16 (#14783) 2021-02-28 18:08:33 -05:00
go.mod Fix recovery middleware to render gitea style page. (#13857) 2021-01-05 21:05:40 +08:00
LICENSE
mc_constants.go Fix recovery middleware to render gitea style page. (#13857) 2021-01-05 21:05:40 +08:00
mc_req.go go1.16 (#14783) 2021-02-28 18:08:33 -05:00
mc_res.go Fix recovery middleware to render gitea style page. (#13857) 2021-01-05 21:05:40 +08:00
README.markdown
tap.go

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.