TRIVIAL-LDAP is a one-file, pure-Lisp client library for parts of RFC 4510 - Lightweight Directory Access Protocol (v3), LDAP.

TRIVIAL-LDAP has been updated to use usocket (instead of trivial-socket) and now provides facilities for SSL LDAP connections. The following omissions exist:

  • UTF-8 is not implemented
  • the SASL authentication method is not implemented
  • controls are not implemented
  • extended DN searches are not implemented
  • referrals are not followed (searches returning referrals will simply no-op following the referrals).
  • extended request/response is not implemented, beyond handling a notice of disconnection.

In 2011, Raymond Wiker took over maintenance of trivial-ldap. Since then, the following changes have been made:

  • Added utf-8 support.
  • Added rudimentary handling of binary attributes.
  • Rewrote the parser, using cl-yacc.
  • As a side effect of the parser rewrite, it is now possible to also specify ldap filters in a list form.
  • Added mechanism for result paging; this makes it possible to handle very large result sets.
  • SASL/GSS has been added (courtesy of Elias MÃ¥rtenson).

That said, search, add, delete, modify, moddn, compare, and bind operations are supported. Full details and documentation are available at

trivial-ldap is originally by kevin montuori. The current maintainer is Raymond Wiker.