dropbox / godropbox

Common libraries for writing Go services/applications.
BSD 3-Clause "New" or "Revised" License
4.17k stars 427 forks source link

memcached binary client imposes restrictions on key #242

Open ji-han opened 4 years ago

ji-han commented 4 years ago

I noticed that the Memcached binary protocol client provided by this library performs checks on the keys and disallows certain byte values, perhaps to maintain compatibility with the ASCII protocol: https://github.com/dropbox/godropbox/blob/52ad444d35023d078d496d305d75511e772f0295/memcache/raw_binary_client.go#L19

Could this behavior be made configurable? The documentation for the Memcached binary protocol (https://github.com/memcached/memcached/wiki/BinaryProtocolRevamped) doesn't seem to impose these restrictions, and empirically it does seem possible to set and retrieve keys that this client considers invalid (such as keys with spaces).