Directory | Tags | Index | LinkIt | Submit   | Help
    Friday, 14 December 2018 - anonymous
Login/Register to vote and to have access to more features

You are here: Root > Software > Development > Libraries

View the dependency graph for this library

Created by montuori on: Tue, 17 Jan 2006 00:37:21 GMT, Last modification: Mon, 09 Apr 2007 06:51:45 GMT

TRIVIAL-LDAP is a one file, all lisp client implementation of parts of RFC 2251.
Web site
Mailing list
Version0.80 -
OS compatibilitytested on OS X with openmcl and sbcl; however, there's little reason to believe it will not work cross-platform.
ASDF installableNo
Official Download
Mirrored Download
Source code repository


TRIVIAL-LDAP is a one file, all Common Lisp client implementation of parts of RFC 2261.


This is beta software. While I believe the API documented below is correct it is subject to change. Also, do not run execute the example.lisp program against a production LDAP directory, it will delete your entries.


This LDAP client came about as a result of some functionality I required for a different project altogether. As a result it provides functionality that is general enough but probably not in typical low-level API fashion. (For instance, a "real" LDAP library would probably tackle the BER encoding separately.) However, as there is a lack of Common Lisp LDAP clients out there I thought I'd share.

I am open to both requests for features and suggestions for improving my Lisp code. There are features I will be implementing in the short term but for the sake of not creating false expectations neither a comprehensive list nor timeframe is available.

You can reach me at


2007-01-12 (v0.80)
  • Converted from trivial-socket to usocket: indications were that trivial-socket has been deprecated.
  • Added support for SSL with CL+SSL. Setting the ldap object slot sslflag to T or the port slot to 636 will force an encrypted connection. Do note that this is not TLS, just ldaps:// ... I don't require TLS; if you do, drop me a line.
  • Added functionality to ease the pain of short slapd idletimeouts. The ldap object slot reuse-connection may be set to NIL (the default) to not attempt reopening connections, T to reopen the connection before each request, or TRIVIAL-LDAP:REBIND if the connection should be opened and a bind message sent before each request (except, of course, the bind request itself).
  • A couple of documentation and logic bugs were corrected


I would like to thank Zach Beane for his many helpful comments and suggestions. Thanks also to Ed Symanzik for pointing out a number inconsistencies in the code and documentation.

Also, anod to my client, Brandeis University, for not fretting too much when I break out emacs + slime to administrate their LDAP directories.


TRIVIAL-LDAP is distributed under the Clarified Artistic License, a copy of which is included in the downloadable package.


TRIVIAL-LDAP has been tested under OpenMCL 1.0 (OS X/PPC), SBCL 0.9.7 (OS X/PPC), and SBCL 1.0 (OS X/Intel).

I would assume any CL that is supported by usockets and CL+SSL would have no issues with this code. If you encounter problems let me know.

Two external packages, usocket and CL+SSL, are required. CL+SSL itself requires trivial-gray-streams, flexi-streams, and cffi. These may be downloaded from:

The trivial-gray-streams project is part of the CL+SSL project. (Note: to get CL+SSL working on OS X/Intel it was necessary to re-compile openssl with the -m64 flag.)


Missing functionality, as specified by RFC 2251, includes: I do not require this functionality myself, but if there was interest I would consider augmenting TRIVIAL-LDAP with some of this missing functionality.

Compatible Implementations


Required Libraries  View graph

CL+SSL | usocket


Libraries | LDAP | ANSI Standard | Open Source | Network Programming | Database

0 Notes and 0 comments

0 Notes

You must be logged to add a note


You must be logged to add a comment