Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

SASL Support #15

Open
ericallam opened this Issue · 15 comments

7 participants

Eric Allam Arnout Kazemier Cesar J. Alaniz Giovanni Cappellotto Ron Korving David Terei Amit Levy
Eric Allam

Just wondering if there were any plans on supporting SASL authentication. The use case for this is heroku's memcache deployment requires SASL to work. Thanks for your time.

Arnout Kazemier
Owner

Hi,

SASL auth isn't on my todo list. Because I don't use it. But I'll be more than happy to accept a pull requests for it ;)

Cesar J. Alaniz

+1 for this. Alot of the cloud memcache providers require authorization via SASL. This would be a great to have.

Arnout Kazemier
Owner
Arnout Kazemier
Owner

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.

Arnout Kazemier 3rd-Eden closed this
Giovanni Cappellotto

This is the reason I'm working on http://issuehunter.co (http://issuehunter.herokuapp.com).

I'm working on a project using @addisonj https://github.com/addisonj/node-cacher, it relies on your library to use memcached but I'd like to deploy the app on Heroku using the MemCachier addon.

How much money will you need to implement this feature?

/cc @alevy @alexlod @dterei

Arnout Kazemier
Owner

One hundred billion dollars

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.

Giovanni Cappellotto

Shut up and take my money

Thanks anyway. I'm trying https://github.com/alevy/memjs

Ron Korving
Collaborator

Can I just +1 this for entertainment value? Thanks guys :)

Arnout Kazemier
Owner

@potomak I'm just gonna re-open this and put in under the 1.0 milestone.

Arnout Kazemier 3rd-Eden reopened this
David Terei

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.

Amit Levy

@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.

Arnout Kazemier
Owner

@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:

  1. 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.
  2. 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.

Anyways, love to hear your thoughts on this.

Amit Levy

@3rd-Eden, it sounds like it makes sense to try and merge. I'll take a look at this library as well as memcached-stream and see which would be the easiest starting point.

Ron Korving
Collaborator

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.