[][src]Crate sasl2_sys

Bindings to Cyrus SASL.

This crate provides raw bindings to the Cyrus SASL library, libsasl2. Each module corresponds to a public header file in the C API.

Build configuration

Vendored

If the vendored Cargo feature is enabled, a bundled copy of libsasl2 will be compiled and statically linked. The libsasl2 version will generally track the latest upstream release. Note that the version number of this crate is unrelated to the bundled version of libsasl2.

sasl2-sys is currently bundling libsasl2 v2.1.27.

When configuring the bundled library, sasl2-sys is intentionally conservative in the features it enables. All optional features are disabled by default. The following Cargo features can be used to re-enable features as necessary.

  • gssapi-vendored enables the GSSAPI plugin (--enable-gssapi) by building and statically linking a copy of MIT's Kerberos implementation using the krb5-src crate.

Note that specifying any of these features implies vendored.

The eventual goal is to expose each libsasl2 feature behind a Cargo feature of the same name. Pull requests on this front are welcomed.

System

Without the vendored Cargo feature, sasl2-sys will search for the libsasl2 library and headers in several standard locations. If the pkg-config feature is enabled, as it is by default, pkg-config will be queried for the location of the sasl2 library.

When linking against the system-provided library, dynamic linking is preferred unless the SASL2_STATIC variable is set.

Platform support

Upstream supports most major platforms, but sasl2-sys is only tested on recent versions of Ubuntu, CentOS, and macOS. Patches that improve support for other platforms are welcome.

Modules

hmac_md5

HMAC MD5 utilities.

md5

MD5 utilities.

prelude

Almagamates exports from all other modules.

prop

Property request/response management routines.

sasl

Main SASL API.

saslplug

SASL plugin API.

saslutil

SASL utility functions.