# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.65.0"
name = "rsasl"
version = "2.3.0"
authors = ["Nadja Reitzenstein <dequbed@paranoidlabs.org>"]
build = false
include = [
    "Cargo.toml",
    "/src/",
    "README.md",
    "CHANGELOG.md",
    "LICENSE.MIT",
    "LICENSE.APACHE-2.0",
    "/docs/",
    "/tests/",
    "/examples/",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = """
The Rust SASL framework, aimed at both middleware-style protocol implementation and application code.
Designed to make SASL authentication simple and safe while handing as much control to the user as possible.
"""
homepage = "https://codeberg.org/dequbed/rsasl"
documentation = "https://docs.rs/rsasl"
readme = "README.md"
keywords = [
    "sasl",
    "authentication",
    "sso",
    "framework",
    "middleware",
]
categories = [
    "authentication",
    "api-bindings",
    "network-programming",
]
license = "Apache-2.0 OR MIT"
repository = "https://codeberg.org/dequbed/rsasl"

[package.metadata.docs.rs]
all-features = true

[features]
anonymous = ["std"]
config_builder = ["std"]
default = [
    "config_builder",
    "scram-sha-1",
    "scram-sha-2",
    "anonymous",
    "external",
    "oauthbearer",
    "xoauth2",
    "plain",
    "login",
    "gssapi",
]
external = ["std"]
gssapi = [
    "std",
    "dep:libgssapi",
    "dep:bitflags",
]
login = ["std"]
oauthbearer = [
    "std",
    "dep:serde",
    "serde_json",
]
plain = [
    "std",
    "dep:stringprep",
]
provider = ["std"]
provider_base64 = [
    "std",
    "provider",
    "dep:base64",
]
registry_static = [
    "std",
    "dep:linkme",
]
scram-sha-1 = [
    "std",
    "dep:stringprep",
    "dep:hmac",
    "dep:digest",
    "dep:sha1",
    "dep:base64",
    "dep:rand",
    "dep:pbkdf2",
]
scram-sha-2 = [
    "std",
    "dep:stringprep",
    "dep:hmac",
    "dep:digest",
    "dep:sha2",
    "dep:base64",
    "dep:rand",
    "dep:pbkdf2",
]
std = ["serde_json/std"]
testutils = [
    "std",
    "config_builder",
]
unstable_custom_mechanism = ["std"]
xoauth2 = ["std"]

[lib]
name = "rsasl"
path = "src/lib.rs"

[[example]]
name = "client_simple"
path = "examples/client_simple.rs"
required-features = [
    "provider",
    "plain",
]

[[example]]
name = "mechanism_selection"
path = "examples/mechanism_selection.rs"
required-features = [
    "provider",
    "login",
    "plain",
    "scram-sha-1",
    "scram-sha-2",
]

[[example]]
name = "server_plain"
path = "examples/server_plain.rs"
required-features = [
    "provider",
    "plain",
]

[[example]]
name = "server_scram"
path = "examples/server_scram.rs"
required-features = [
    "provider",
    "plain",
    "scram-sha-2",
]

[dependencies.base64]
version = "0.22.1"
optional = true

[dependencies.bitflags]
version = "2.6.0"
optional = true

[dependencies.digest]
version = "0.10.7"
optional = true

[dependencies.document-features]
version = "0.2.10"
optional = true

[dependencies.hmac]
version = "0.12.1"
features = ["reset"]
optional = true

[dependencies.libgssapi]
version = "0.7.2"
optional = true
default-features = false

[dependencies.linkme]
version = "0.3.31"
optional = true
default-features = false

[dependencies.pbkdf2]
version = "0.12.2"
optional = true
default-features = false

[dependencies.rand]
version = "0.8.5"
optional = true

[dependencies.serde]
version = "1.0.217"
features = [
    "alloc",
    "derive",
]
optional = true
default-features = false

[dependencies.serde_json]
version = "1.0.132"
features = ["alloc"]
optional = true
default-features = false

[dependencies.sha1]
version = "0.10.6"
optional = true

[dependencies.sha2]
version = "0.10.8"
optional = true

[dependencies.stringprep]
version = "0.1.5"
optional = true
default-features = false

[dependencies.thiserror]
version = "2.0.11"
default-features = false

[dev-dependencies.static_assertions]
version = "1.1.0"

[lints.clippy]
box_default = "allow"
doc_markdown = "allow"
exhaustive_enums = "warn"
exhaustive_structs = "warn"
inline_always = "allow"
missing_errors_doc = "allow"
module_name_repetitions = "allow"

[lints.clippy.all]
level = "warn"
priority = -1

[lints.clippy.nursery]
level = "warn"
priority = -1

[lints.clippy.pedantic]
level = "warn"
priority = -1

[lints.rust]
non_camel_case_types = "allow"
non_upper_case_globals = "allow"
