Since LDAP is an open standard protocol, all of the information needed to create an LDAPv3-compliant server is freely available (see the LDAP Reference Materials for links to the relevant documents). As such, there are several available types of directory servers. Some of the most notable implementations are listed below:

Editor’s note: I am one of the creators of the Ping Identity Directory Server (formerly UnboundID Directory Server) and have been its lead developer since its creation. Since I would obviously be biased, and since I want this site to be as neutral as possible to promote the use of LDAP in general, I will avoid any attempt at ranking or assessing the quality of any of these implementations. Instead, they will be listed in alphabetical order.

If you have any suggestions for other directory servers to include on this page, please email them to

Traditional LDAP Directory Servers

LDAP directory servers that you can run yourself, on your own equipment or in the cloud:

  • Symas OpenLDAP (an enhanced version of OpenLDAP with available commercial support)


Hosted LDAP Directory Services

LDAP directory servers that someone else will run for you:

  • PingCloud (backed by Ping Identity Directory Server)


Integrated Suites Containing Directory Servers

The following integrated suites include a directory server as part of a larger solution.

  • FreeIPA (backed by 389 Directory Server)


Embeddable and Testing-Friendly LDAP Servers

If you’re developing an LDAP-enabled application and wish to have access to a directory server for use in your testing framework, it may be helpful to use a library designed for this purpose. Some of these options include:

  • Go
    • GLAuth can be used as a simple LDAP server for testing purposes.
  • Java and Other JVM-Based Languages
    • ApacheDS can be run in embedded mode
    • embedded-ldap-junit — A library that can simplify LDAP-related testing in JUnit (uses the UnboundID LDAP SDK for Java behind the scenes)
    • UnboundID LDAP SDK for Java provides an in-memory directory server and an LDAP listener framework. It also provides an LDAPTestUtils class to help facilitate unit testing
  • JavaScript
    • ldapjs provides a framework for acting as an LDAP server
  • Python
    • python-ldap-test provides a Python framework for programatically creating an in-memory LDAP server (uses the UnboundID LDAP SDK for Java behind the scenes)

Further, there are directory servers available for specialized use cases. Some of those include:

  • LDAP Swiss Army Knife — A simple LDAP server designed for LDAP-related security and penetration testing.