You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Lunny Xiao 15a475b7db
Fix recovery middleware to render gitea style page. (#13857)
* Some changes to fix recovery

* Move Recovery to middlewares

* Remove trace code

* Fix lint

* add session middleware and remove dependent on macaron for sso

* Fix panic 500 page rendering

* Fix bugs

* Fix fmt

* Fix vendor

* recover unnecessary change

* Fix lint and addd some comments about the copied codes.

* Use util.StatDir instead of com.StatDir

Co-authored-by: 6543 <6543@obermui.de>
4 years ago
..
client Fix recovery middleware to render gitea style page. (#13857) 4 years ago
.gitignore Fix recovery middleware to render gitea style page. (#13857) 4 years ago
LICENSE add other session providers (#5963) 5 years ago
README.markdown Use Go1.11 module (#5743) 5 years ago
flexibleFraming.go chore: update github.com/couchbase/gomemcached and github.com/couchbase/go-couchbase (#9419) 5 years ago
go.mod Fix recovery middleware to render gitea style page. (#13857) 4 years ago
mc_constants.go Fix recovery middleware to render gitea style page. (#13857) 4 years ago
mc_req.go [Vendor] update macaron related (#13409) 4 years ago
mc_res.go Fix recovery middleware to render gitea style page. (#13857) 4 years ago
tap.go add other session providers (#5963) 5 years ago

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.