Cargo Features

[dependencies]
rsasl = { version = "2.2.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, 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 = std

Compile-time mechanism selection

Enable SCRAM-SHA-1 and SCRAM-SHA-1-PLUS

Enables base64, digest, hmac, pbkdf2, rand, sha1, and stringprep

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

scram-sha-2 default = std

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

Enables base64, digest, hmac, pbkdf2, rand, sha2, and stringprep

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

anonymous default = std

Enable ANONYMOUS

Affects mechanisms::anonymous

external default = std

Enable EXTERNAL

Affects mechanisms::external

plain default = std

Enable PLAIN

Enables stringprep

Affects mechanisms::plain

login default = std

Enable LOGIN

Affects mechanisms::login

xoauth2 default = std

Enable XOAUTH2

Affects mechanisms::xoauth2

oauthbearer default = serde_json, std

Enable the OAuth2 based OAUTHBEARER

Enables serde

Affects mechanisms::oauthbearer

gssapi default = std

Enable the KerberosV5 mechanism GSSAPI

Enables bitflags and libgssapi ^0.7.2

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 = 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

Enables base64

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 = std

Enables the static registry using linkme

Enables 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 core2 and serde_json

Affects error::MechanismError

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

document-features implicit feature

Enables document-features

document-features:

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

Affects rsasl::docs.features

serde_json oauthbearer std?