a strictly RFC 4510 conforming LDAP V3 pure Python client. The same codebase works with Python 2. Python 3, PyPy and PyPy3
cannatag Merge pull request #572 from cannatag/revert-566-ad-timedelta
Revert "Support formatting Active Directory time deltas"
Latest commit 1f9469f Aug 15, 2018
Failed to load latest commit information.
docs Typo Apr 19, 2018
ldap3 Revert "Support formatting Active Directory time deltas" Aug 15, 2018
test Revert "Support formatting Active Directory time deltas" Aug 15, 2018
.gitignore Allow installing ldap3 compiled to C using cython Oct 16, 2017
.travis.yml removed AD from travi-ci testing matrix Mar 4, 2018
CHANGES.txt v 2.5.1 Aug 1, 2018
COPYING.LESSER.txt removed unneeded nested ldap3 directory Jan 7, 2015
COPYING.txt fixed * and + in attribute list in responses Sep 19, 2016
LICENSE.txt removed unneeded nested ldap3 directory Jan 7, 2015
MANIFEST.in version Feb 28, 2015
README.rst updated copyright notice Jan 13, 2018
Timeouts_test.py forcing timeout for ssl socket Jun 3, 2017
_changelog.txt v 2.5.1 Aug 1, 2018
_version.json traceback not stored in exception history Apr 25, 2018
build-binary-wheels.sh Separate the Cython build process Jun 12, 2018
build-dist.cmd build windows version with python 3.5.3 because of a bug in 3.6 Mar 12, 2017
deploy-to-pypi.cmd version Feb 27, 2015
getADObjectGUID.py testing AD objectGuid Jan 22, 2017
prepare-dist.cmd version Feb 27, 2015
py26-test.cmd socket properly closed with invalid server address Jan 21, 2018
requirements.txt change theme rtd Nov 10, 2015
setup-binary.py Separate the Cython build process Jun 12, 2018
setup.py Separate the Cython build process Jun 12, 2018
tut1.py added rfc 4527 pre -post read controls Dec 24, 2016
tut2.py v2.0.4 Oct 27, 2016
tut3.py updated tutorials Nov 9, 2016
tut4.py updated tutorials Nov 9, 2016
update_source.py request_to_dict fixed when bytes values are present Jun 24, 2017
upload-to-pypi.cmd v2.2.0 Jan 16, 2017



Latest Version License TRAVIS-CI build status for master branch

ldap3 is a strictly RFC 4510 conforming LDAP V3 pure Python client library. The same codebase runs in Python 2, Python 3, PyPy and PyPy3.

Version 2 warning

In version 2 of ldap3 some default values have been changed and the ldap3 namespace has been decluttered, removing redundant constants (look at the changelog for details). Also, the result code constants were moved to ldap3.core.results and the ldap3 custom exceptions were stored in ldap3.core.exceptions. If you experience errors in your existing code you should rearrange the import statements or explicitly set the defaults to their former values.

A more pythonic LDAP

LDAP operations look clumsy and hard-to-use because they reflect the old-age idea that time-consuming operations should be performed client-side to not hog the server with heavy elaborations. To alleviate this ldap3 includes a fully functional Abstraction Layer that lets you interact with the LDAP server in a modern and pythonic way. With the Abstraction Layer you don't need to directly issue any LDAP operation at all.

Home Page

Project home page is https://github.com/cannatag/ldap3


Documentation is available at http://ldap3.readthedocs.io


The ldap3 project is open source software released under the LGPL v3 license. Copyright 2013 - 2018 Giovanni Cannata

PEP8 Compliance

ldap3 is PEP8 compliant, except for line length.


Package download is available at https://pypi.python.org/pypi/ldap3.


Install with pip install ldap3

Git repository

You can download the latest source at https://github.com/cannatag/ldap3

Continuous integration

Continuous integration for testing is at https://travis-ci.org/cannatag/ldap3


You can submit support tickets on https://github.com/cannatag/ldap3/issues/new You can submit pull request on the dev branch at https://github.com/cannatag/ldap3/tree/dev

Thanks to

  • Ilya Etingof, the author of the pyasn1 package for his excellent work and support.
  • Mark Lutz for his Learning Python and Programming Python excellent books series and John Goerzen and Brandon Rhodes for their book Foundations of Python Network Programming. These books are wonderful tools for learning Python and this project owes a lot to them.
  • JetBrains for donating to this project the Open Source license of PyCharm Professional.
  • GitHub for providing the free source repository space and the tools I use to develop this project.
  • The FreeIPA team for letting me use their demo LDAP server in the ldap3 tutorial.

Contact me

For information and suggestions you can contact me at cannatag@gmail.com. You can also open a support ticket on https://github.com/cannatag/ldap3/issues/new


If you want to keep this project up and running you can send me an Amazon gift card. I will use it to improve my skills in the Information and Communication technology.


Updated changelog at https://ldap3.readthedocs.io/changelog.html