NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #4785 most downloaded on crates.io
An ASN.1/BER parser/encoder based on nom
Last release 1 years 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
An LDAP connection can be constructed with a pre-built TLS connector using LdapConnBuilder::with_tls_connector() (#11). This function is not publicly
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).
Changes are listed approximately in reverse chronological order. Since they are so numerous for this release, and many are breaking changes, please re…
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 ResultEntry elements, so
the internal ASN.1 type is hidden. This changes the signature of
SearchEntry::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() and LdapConn::with_controls()
have changed.
LdapResult implements success(), which returns the structure itself if
rc is zero, or an error if it's not. There's also non_error(), which
also considers the value 10 (referral) as successful.
[breaking change] Compare returns CompareResult, a newtype of LdapResult
which implements the equals() method, transforming compareFalse/compareTrue
rc values to a boolean.
[breaking change] Non-streaming search returns a wrapper type, SearchResult.
The success() 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 by LdapResult.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 be Ldap::search() is now named Ldap::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 with SearchStream::get_result_rx(). The receiver is also simplified,
and now retrieves just the LdapResult.
[breaking change] LdapResult contains 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.rc is now u32 (was: u8).
[breaking change] Ldap::connect() and Ldap::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.
One column per quarter.
Support for Unix domain sockets on Unix-like systems.
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.)
First published version.
First published version.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →