Cargo Features

rsasl = { version = "2.0.0", default-features = false, features = ["scram-sha-1", "scram-sha-2", "anonymous", "external", "plain", "login", "xoauth2", "oauthbearer", "gssapi", "provider", "provider_base64", "config_builder", "registry_static", "testutils", "unstable_custom_mechanism", "std", "document-features"] }
default = anonymous, config_builder, external, gssapi, login, oauthbearer, plain, registry_static, scram-sha-1, scram-sha-2, xoauth2

These default features are set whenever rsasl is added without default-features = false somewhere in the dependency tree.

scram-sha-1 default = base64, digest, hmac, pbkdf2, rand, sha-1, std, stringprep

Compile-time mechanism selection


Affects client::ScramSha1Client, server::ScramSha1Server, mechanisms::scram

scram-sha-2 default = base64, digest, hmac, pbkdf2, rand, sha2, std, stringprep

Enable SCRAM-* and SCRAM-*-PLUS mechanisms using SHA-2, i.e. SHA-256 and SHA-512

Affects client::ScramSha256Client, server::ScramSha256Server, mechanisms::scram

anonymous default = std


Affects mechanisms::anonymous

external default = std


Affects mechanisms::external

plain default = std, stringprep

Enable PLAIN

Affects mechanisms::plain

login default = std

Enable LOGIN

Affects mechanisms::login

xoauth2 default = std

Enable XOAUTH2

Affects mechanisms::xoauth2

oauthbearer default = serde, serde_json, std

Enable the OAuth2 based OAUTHBEARER

Affects mechanisms::oauthbearer

gssapi default = bitflags, libgssapi, std

Enable the KerberosV5 mechanism GSSAPI

Affects mechanisms::gssapi

provider provider_base64? = std

Provider flags

These flags are relevant for crates that want to use rsasl as authentication provider, i.e. crates implementing network protocols

Enable provider mode

This feature enables all the required code for providers, e.g. code surrounding Session

provider_base64 = base64, provider, std

Enable transparent Base64 wrapping for provider mode

This enables the step64 method to wrap a call to step in base64-encoding. Adds a dependency on the base64 crate

config_builder default testutils? = std

# Supplier flags
These flags are relevant for crates that want to use rsasl as supplier, i.e. applications and libraries making use of protocol implementations with rsasl support
Enable the ConfigBuilder

registry_static default = linkme, std

Enables the static registry using linkme

testutils = config_builder, std

# Misc flags
Other miscellanious flags

Enable utilities for testing authentication and SASL handling

unstable_custom_mechanism = std

Enable adding custom mechanisms.

**NOTE: This flag indicates an opt-out of SemVer stability guarantees**

The code for adding mechanism from other crates has not stabilized yet and is subject to *breaking* changes even in a minor release.

Affects rsasl::mechanism, rsasl::registry

std anonymous config_builder external gssapi login oauthbearer plain provider? provider_base64? registry_static scram-sha-1 scram-sha-2 testutils? unstable_custom_mechanism? xoauth2

Enable use of libstd
If this flag is not set, rsasl is marked !\[no_std\]. However, currently this flag will *always* be enabled as core parts of rsasl depend on the stdlib.

Enables std of acid_io and serde_json


An #[no_std]-enabled version of std::io.

Affects error::MechanismError

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features.

base64 provider_base64? scram-sha-1 scram-sha-2

Enables base64 ^0.13

rand scram-sha-1 scram-sha-2
hmac scram-sha-1 scram-sha-2
digest scram-sha-1 scram-sha-2
sha-1 scram-sha-1
sha2 scram-sha-2
pbkdf2 scram-sha-1 scram-sha-2

Enables pbkdf2 ^0.10

stringprep plain scram-sha-1 scram-sha-2
linkme registry_static

Enables linkme ^0.2

document-features implicit feature

Enables document-features


Extract documentation for the feature flags from comments in Cargo.toml

Affects rsasl::docs.features

serde oauthbearer
serde_json oauthbearer std?
libgssapi gssapi

Enables libgssapi ^0.6

bitflags gssapi

Enables bitflags ^1