lber
An ASN.1/BER parser/encoder based on nom
0.5.1
4.5M downloads/mo
#4746 most downloaded on crates.io
inejge/ldap3
What this package is like to depend on
Last release 11 months ago
07 Sep 2025
Release timing varies
gaps range from 8 days to 2.3 years
Some releases are documented
notes for 4 of 11 stable releases
1 version withdrawn
withdrawn after publishing
9 years old
12 releases · first in 2017
2 releases in the last 12 months
see the full history below
Release timeline
12 releases · May 2017 to Sep 2025Releases
latest 12-
0.5.107 Sep 2025Release notes
Open source →-
An LDAP connection can be constructed with a pre-built TLS connector using
LdapConnBuilder::with_tls_connector()(#11). This function is not publicly documented, to avoid fixing the API. The intent is to allow connections which need additional connector configuration, such as those to a server using a self-signed certificate. -
The function
ldap3::dn_escape()is provided to escape RDN values when constructing a DN (#13).
-
-
0.5.007 Sep 2025Release notes
Open source →Changes are listed approximately in reverse chronological order. Since they are so numerous for this release, and many are breaking changes, please read them carefully.
-
Assertion, Pre- and Post-Read controls are implemented in-tree.
-
Ldap::with_controls()can also accept a single control, without the need to construct a vector. -
[breaking change] Searches return a vector of
ResultEntryelements, so the internal ASN.1 type is hidden. This changes the signature ofSearchEntry::construct(). -
Control and exop implementations don't depend on internal traits and structs, enabling independent third-party development.
-
[breaking change] Exop and control handling is streamlined, but old parsing methods don't work any more. The signatures of
Ldap::extended(),LdapConn::extended(),Ldap::with_controls()andLdapConn::with_controls()have changed. -
LdapResultimplementssuccess(), which returns the structure itself ifrcis zero, or an error if it's not. There's alsonon_error(), which also considers the value 10 (referral) as successful. -
[breaking change] Compare returns
CompareResult, a newtype ofLdapResultwhich implements theequals()method, transforming compareFalse/compareTrue rc values to a boolean. -
[breaking change] Non-streaming search returns a wrapper type,
SearchResult. Thesuccess()method can be invoked on a value of this type, destructuring it to an anonymous tuple of a entry vector and result struct, and propagating error cases, as determined byLdapResult.rc, upward. -
[breaking change] Async and sync search APIs are now aligned.
Ldap::search()returns a future of the result entry vector, which it internally collects; what used to beLdap::search()is now namedLdap::streaming_search(). -
[breaking change]
Ldap::streaming_search()returns a future of just a SearchStream, instead of a tuple. The result receiver must be extracted from the stream instance withSearchStream::get_result_rx(). The receiver is also simplified, and now retrieves just theLdapResult. -
[breaking change]
LdapResultcontains the response controls. -
[breaking change]
Ldap::abandon()accepts the msgid, not id. It's not meant to be called directly any more. -
[breaking change]
SearchStream::id()has been removed. -
[breaking change]
LdapConn::abandon()has been removed. -
[breaking change]
LdapResult.rcis nowu32(was:u8). -
[breaking change]
Ldap::connect()andLdap::connect_ssl()have an additional parameter, an optional connection timeout. -
Timeout support, which can be used both synchronously and asynchronously. Timeouts can be specified both for connection establishment and individual LDAP operations. For the first case, a connection must be constructed through LdapConnBuilder.
-
The function
ldap3::ldap_escape()is provided to escape search literals when constructing a search filter.
-
-
0.4.208 Jun 2023Release notes
Open source →-
Documentation update.
-
Support for Unix domain sockets on Unix-like systems.
-
Support for SASL EXTERNAL binds, also limited to Unix-like systems for the time being, since they can only work on Unix domain socket connections (we can't use TLS client certs yet.)
-
-
0.4.020 Dec 2022 -
0.3.030 Dec 2020Nothing published for this version
-
0.2.001 May 2020Nothing published for this version
-
0.1.727 Apr 2020 withdrawnNothing published for this version
-
0.1.625 Mar 2018Nothing published for this version
-
0.1.520 Jul 2017Nothing published for this version
-
0.1.412 May 2017Nothing published for this version
-
0.1.305 May 2017Nothing published for this version
-
0.1.203 May 2017Nothing published for this version