Decided not to add SASL support as this requires me to support 2 different parsers a ASCII parser and a BINARY parser as SASL support can only be done if you communicate on a binary level with memcached.

The reason I want to keep the ascii support is that there are a lot more databases/message queues that are adding support for the ascii memcached protocol so going full binary is not an option here and supporting 2 parsers is a bit overkill.

But in all seriousness, I honestly don't know how much time it will cost to implement an extra parser in to the source. But I do know that it's impossible to do in the current version as the parser is completely is implemented throughout the module. Having that said, It might be do-able for the 1.0 release that I have been slowly working on. It features a new ASCII streaming parser that resolves tons of edge cases and has a huge performance increase. So I can see I can create an API that is compatible with the https://github.com/billywhizz/node-memcache-parser.

Ha, this was awesome! Yes, for now (with MemCachier on Heroku) due to lack of SASL and binary protocol in node-memcached we recommend using our own homegrown memcache client for node (https://github.com/alevy/memjs). @3rd-Eden Let us know though when you feel the code base for node-memcached is in a state that is suitable for adding the binary protocol and SASL, it's something we could probably help out with.

@3rd-Eden@dterei if it makes sense to combine efforts as well, we can see about merging memjs into node-memcached. Maybe it doesn't, and it's better to have separate libraries for ascii and binary, but I'm definitely happy to try and join forces.

@alevy First of all apologies for the late response, It's been a really busy week and this issue has totally slipped my attention.

There are 2 ways we could collaborate:

On memcached client level, where we unify merge our projects in to one single project which would probably result in the best memcached client for Node.js. This would probably only be an option if we share the same goals for the project. I have taken a look a your memjs project and it looks like a really solid implementation of the binary protocol and want to support a couple of thing that I have already build in to this project. My main goal of the driver was to build the highest performing memcached driver that supports multiple server through consistent hashing with a decent fail over solution for broken servers.

If we differ in visions we might be able to collaborate on a parser level. As I have recently started extracting and rebuilding my ASCII parser in to a new project (memcached-stream) which is a streaming response parser. It might be worth integrating a binary protocol in to that project which both of our projects use and maintain.

Just a friendly word of caution. The binary API and ascii API are not the same. The binary one is much richer in its abilities, and it would be a real shame if some of that would be lost for the sake of unification.