Introducing EDS — Erlang Directory Server with a MongoDB backend [1].
LDAP and its predecessor X.500 can be traced back to the 80s. Yet ``the asteroid to kill this dinosaur is still in orbit'' [2]. LDAP is a vital part of any directory: an identity management, a contact management and a single sign-on to name a few.
EDS features:
- robust & distributed database as a back-end
- non-blocking server architecture inspired by an article by Serge Aleynikov [3]
- pretty confident LDAP protocol support (Bind, Unbind, Abandon, Search, Add, Modify, Delete and ModifyDN)
- LDAP filters, search size limit, attributes subset requests
- RB-tree (actually, two of a kind) to maintain an operations' queue
- major Erlang idioms in server design: independent actors and ``let it crash'' philosophy
Road map:
- access control and security including SASL bind
- CompareRequest support
- ExtendedRequest and extensibleMatch in LDAP filter support
References:
1. https://github.com/master/eds/
2. Lex Manual Page
3. http://www.trapexit.org/Building_a_Non-blocking_TCP_server_using_OTP_principles
LDAP and its predecessor X.500 can be traced back to the 80s. Yet ``the asteroid to kill this dinosaur is still in orbit'' [2]. LDAP is a vital part of any directory: an identity management, a contact management and a single sign-on to name a few.
EDS features:
- robust & distributed database as a back-end
- non-blocking server architecture inspired by an article by Serge Aleynikov [3]
- pretty confident LDAP protocol support (Bind, Unbind, Abandon, Search, Add, Modify, Delete and ModifyDN)
- LDAP filters, search size limit, attributes subset requests
- RB-tree (actually, two of a kind) to maintain an operations' queue
- major Erlang idioms in server design: independent actors and ``let it crash'' philosophy
Road map:
- access control and security including SASL bind
- CompareRequest support
- ExtendedRequest and extensibleMatch in LDAP filter support
References:
1. https://github.com/m
2. Lex Manual Page
3. http://www.trapexit.
3 months ago - (6 comments)






