Skip to content
Snippets Groups Projects
Cargo.toml 18.7 KiB
Newer Older
  • Learn to ignore specific revisions
  • Jason Volk's avatar
    Jason Volk committed
    #cargo-features = ["profile-rustflags"]
    
    [workspace]
    resolver = "2"
    members = ["src/*"]
    default-members = ["src/*"]
    
    [workspace.package]
    
    🥺's avatar
    🥺 committed
    authors = [
        "strawberry <strawberry@puppygock.gay>",
        "timokoesters <timo@koesters.xyz>",
    ]
    
    categories = ["network-programming"]
    description = "a very cool fork of Conduit, a Matrix homeserver written in Rust"
    
    edition = "2021"
    
    Jason Volk's avatar
    Jason Volk committed
    homepage = "https://conduwuit.puppyirl.gay/"
    
    keywords = ["chat", "matrix", "server"]
    license = "Apache-2.0"
    # See also `rust-toolchain.toml`
    
    Jason Volk's avatar
    Jason Volk committed
    readme = "README.md"
    
    repository = "https://github.com/girlbossceo/conduwuit"
    rust-version = "1.77.0"
    
    🥺's avatar
    🥺 committed
    version = "0.4.2"
    
    [workspace.metadata.crane]
    name = "conduit"
    
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.sanitize-filename]
    version = "0.5.0"
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.jsonwebtoken]
    version = "9.3.0"
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.base64]
    version = "0.22.1"
    
    # used for TURN server authentication
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.hmac]
    version = "0.12.1"
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.sha-1]
    version = "0.10.1"
    
    Jason Volk's avatar
    Jason Volk committed
    # used for checking if an IP is in specific subnets / CIDR ranges easier
    [workspace.dependencies.ipaddress]
    version = "0.1.3"
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.rand]
    version = "0.8.5"
    
    # Used for the http request / response body type for Ruma endpoints used with reqwest
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.bytes]
    version = "1.6.0"
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.http-body-util]
    version = "0.1.1"
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.http]
    version = "1.1.0"
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.regex]
    version = "1.10.4"
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.axum]
    
    version = "0.7.5"
    default-features = false
    
    Jason Volk's avatar
    Jason Volk committed
    features = [
    	"form",
    	"http1",
    	"http2",
    	"json",
    	"matched-path",
    	"tokio",
    
    🥺's avatar
    🥺 committed
    	"tracing",
    
    Jason Volk's avatar
    Jason Volk committed
    ]
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.axum-extra]
    
    version = "0.9.3"
    
    default-features = false
    
    features = ["typed-header"]
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.axum-server]
    
    version = "0.6.0"
    
    features = ["tls-rustls"]
    
    
    [workspace.dependencies.axum-client-ip]
    version = "0.6.0"
    
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.tower]
    
    version = "0.4.13"
    features = ["util"]
    
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.tower-http]
    
    version = "0.5.2"
    
    🥺's avatar
    🥺 committed
    features = [
        "add-extension",
        "cors",
        "sensitive-headers",
    
        "set-header",
    
    🥺's avatar
    🥺 committed
        "trace",
        "util",
        "catch-panic",
    ]
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.reqwest]
    
    version = "0.12.4"
    
    default-features = false
    
    Jason Volk's avatar
    Jason Volk committed
    features = [
    	"rustls-tls-native-roots",
    	"socks",
    	"hickory-dns",
    
    	"http2",
    
    Jason Volk's avatar
    Jason Volk committed
    ]
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.serde]
    
    features = ["rc"]
    
    Jason Volk's avatar
    Jason Volk committed
    
    [workspace.dependencies.serde_json]
    
    🥺's avatar
    🥺 committed
    version = "1.0.117"
    
    features = ["raw_value"]
    
    
    Jason Volk's avatar
    Jason Volk committed
    # Used for appservice registration files
    [workspace.dependencies.serde_yaml]
    version = "0.9.34"
    
    # Used to load forbidden room/user regex from config
    [workspace.dependencies.serde_regex]
    version = "1.1.0"
    
    # Used for ruma wrapper
    [workspace.dependencies.serde_html_form]
    version = "0.2.6"
    
    
    # Used for password hashing
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.argon2]
    
    version = "0.5.3"
    
    🥺's avatar
    🥺 committed
    features = ["alloc", "rand"]
    
    default-features = false
    
    # Used to generate thumbnails for images
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.image]
    
    version = "0.25.1"
    
    default-features = false
    
    Jason Volk's avatar
    Jason Volk committed
    features = [
    	"jpeg",
    	"png",
    	"gif",
    	"webp",
    ]
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.log]
    
    version = "0.4.21"
    default-features = false
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.tracing]
    
    version = "0.1.40"
    default-features = false
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.tracing-subscriber]
    
    version = "0.3.18"
    features = ["env-filter"]
    
    
    Jason Volk's avatar
    Jason Volk committed
    # for URL previews
    [workspace.dependencies.webpage]
    version = "2.0.1"
    default-features = false
    
    Jason Volk's avatar
    Jason Volk committed
    # used for conduit's CLI and admin room command parsing
    [workspace.dependencies.clap]
    version = "4.5.4"
    
    default-features = false
    
    Jason Volk's avatar
    Jason Volk committed
    	"std",
    	"derive",
    	"help",
    	"usage",
    	"error-context",
    	"string",
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.futures-util]
    version = "0.3.30"
    
    default-features = false
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.tokio]
    
    Jason Volk's avatar
    Jason Volk committed
    features = [
    	"fs",
    	"net",
    	"macros",
    	"sync",
    	"signal",
    	"time",
    	"rt-multi-thread",
    	"io-util",
    ]
    
    [workspace.dependencies.libloading]
    version = "0.8.3"
    
    # Validating urls in config, was already a transitive dependency
    [workspace.dependencies.url]
    version = "2.5.0"
    features = ["serde"]
    
    # standard date and time tools
    [workspace.dependencies.chrono]
    version = "0.4.38"
    features = ["alloc"]
    
    default-features = false
    
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.hyper]
    version = "1.3.1"
    features = [
    	"server",
    	"http1",
    	"http2",
    ]
    
    [workspace.dependencies.hyper-util]
    
    Jason Volk's avatar
    Jason Volk committed
    version = "0.1.5"
    features = [
    	"client",
    	"server-auto",
    	"server-graceful",
    	"service",
    	"tokio",
    ]
    
    Jason Volk's avatar
    Jason Volk committed
    
    
    # to support multiple variations of setting a config option
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.either]
    
    features = ["serde"]
    
    
    Jason Volk's avatar
    Jason Volk committed
    # Used for reading the configuration from conduwuit.toml & environment variables
    [workspace.dependencies.figment]
    version = "0.10.18"
    features = ["env", "toml"]
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.hickory-resolver]
    version = "0.24.1"
    
    default-features = false
    
    
    Jason Volk's avatar
    Jason Volk committed
    # Used for conduit::Error type
    [workspace.dependencies.thiserror]
    
    🥺's avatar
    🥺 committed
    version = "1.0.61"
    
    Jason Volk's avatar
    Jason Volk committed
    # Used when hashing the state
    [workspace.dependencies.ring]
    version = "0.17.8"
    
    # Used to make working with iterators easier, was already a transitive depdendency
    [workspace.dependencies.itertools]
    
    🥺's avatar
    🥺 committed
    version = "0.13.0"
    
    Jason Volk's avatar
    Jason Volk committed
    
    # to parse user-friendly time durations in admin commands
    #TODO: overlaps chrono?
    [workspace.dependencies.cyborgtime]
    version = "2.1.1"
    
    # used to replace the channels of the tokio runtime
    [workspace.dependencies.loole]
    
    Jason Volk's avatar
    Jason Volk committed
    
    [workspace.dependencies.async-trait]
    version = "0.1.80"
    
    [workspace.dependencies.lru-cache]
    version = "0.1.2"
    
    
    # Used for matrix spec type definitions and helpers
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.ruma]
    git = "https://github.com/girlbossceo/ruwuma"
    
    🥺's avatar
    🥺 committed
    branch = "conduwuit-changes"
    
    🥺's avatar
    🥺 committed
        "compat",
        "rand",
        "appservice-api-c",
        "client-api",
        "federation-api",
        "push-gateway-api-c",
        "state-res",
        "unstable-exhaustive-types",
        "ring-compat",
        "unstable-unspecified",
    
        "unstable-msc2448",
        "unstable-msc2666",
    
    🥺's avatar
    🥺 committed
        "unstable-msc2870",
    
    🥺's avatar
    🥺 committed
        "unstable-msc3061",
    
        "unstable-msc4121",
    
        "unstable-msc4125",
    
    🥺's avatar
    🥺 committed
        "unstable-extensible-events",
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.ruma-identifiers-validation]
    git = "https://github.com/girlbossceo/ruwuma"
    
    branch = "conduwuit-changes"
    
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.rust-rocksdb]
    path = "deps/rust-rocksdb"
    package = "rust-rocksdb-uwu"
    features = [
    	"multi-threaded-cf",
    	"mt_static",
    	"snappy",
    	"lz4",
    	"zstd",
    	"zlib",
    	"bzip2",
    ]
    
    # to listen on both HTTP and HTTPS if listening on TLS dierctly from conduwuit for complement or sytest
    [workspace.dependencies.axum-server-dual-protocol]
    version = "0.6"
    
    # optional SHA256 media keys feature
    [workspace.dependencies.sha2]
    version = "0.10.8"
    
    # optional opentelemetry, performance measurements, flamegraphs, etc for performance measurements and monitoring
    [workspace.dependencies.opentelemetry]
    version = "0.21.0"
    
    [workspace.dependencies.tracing-flame]
    version = "0.2.0"
    
    [workspace.dependencies.tracing-opentelemetry]
    version = "0.22.0"
    
    [workspace.dependencies.opentelemetry_sdk]
    version = "0.21.2"
    features = ["rt-tokio"]
    
    [workspace.dependencies.opentelemetry-jaeger]
    version = "0.20.0"
    features = ["rt-tokio"]
    
    # optional sentry metrics for crash/panic reporting
    [workspace.dependencies.sentry]
    
    default-features = false
    
    Jason Volk's avatar
    Jason Volk committed
    features = [
        "backtrace",
        "contexts",
        "debug-images",
        "panic",
        "rustls",
        "tower",
        "tower-http",
        "tracing",
        "reqwest",
        "log",
    ]
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.sentry-tracing]
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.sentry-tower]
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.tikv-jemalloc-sys]
    version = "0.5.4"
    default-features = false
    
    features = ["stats", "unprefixed_malloc_on_supported_platforms"]
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.tikv-jemallocator]
    version = "0.5.4"
    default-features = false
    
    features = ["stats", "unprefixed_malloc_on_supported_platforms"]
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.tikv-jemalloc-ctl]
    version = "0.5.4"
    default-features = false
    features = ["use_std"]
    
    [workspace.dependencies.rusqlite]
    
    git = "https://github.com/rusqlite/rusqlite"
    
    #branch = "master"
    rev = "e00b626e2b1c67347d789fb7f600281705c89381"
    
    features = ["bundled"]
    
    # used only by rusqlite
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.parking_lot]
    
    
    # used only by rusqlite
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.thread_local]
    
    version = "1.1.8"
    
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.tokio-metrics]
    version = "0.3.1"
    default-features = false
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.console-subscriber]
    version = "0.2"
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.nix]
    
    Jason Volk's avatar
    Jason Volk committed
    features = ["resource"]
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.sd-notify]
    version = "0.4.1"
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.hardened_malloc-rs]
    version = "0.1.2"
    default-features = false
    features = [
    	"static",
    	"gcc",
    	"light",
    ]
    
    Jason Volk's avatar
    Jason Volk committed
    #
    # Patches
    #
    
    Charles Hall's avatar
    Charles Hall committed
    
    
    # backport of [https://github.com/tokio-rs/tracing/pull/2956] to the 0.1.x branch of tracing.
    # we can switch back to upstream if #2956 is merged and backported in the upstream repo.
    [patch.crates-io.tracing-subscriber]
    
    🥺's avatar
    🥺 committed
    git = "https://github.com/girlbossceo/tracing"
    
    branch = "tracing-subscriber/env-filter-clone-0.1.x-backport"
    [patch.crates-io.tracing]
    
    🥺's avatar
    🥺 committed
    git = "https://github.com/girlbossceo/tracing"
    
    branch = "tracing-subscriber/env-filter-clone-0.1.x-backport"
    [patch.crates-io.tracing-core]
    
    🥺's avatar
    🥺 committed
    git = "https://github.com/girlbossceo/tracing"
    
    branch = "tracing-subscriber/env-filter-clone-0.1.x-backport"
    
    
    Jason Volk's avatar
    Jason Volk committed
    #
    # Our crates
    #
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.conduit-router]
    package = "conduit_router"
    path = "src/router"
    default-features = false
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.conduit-admin]
    package = "conduit_admin"
    path = "src/admin"
    default-features = false
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.conduit-api]
    package = "conduit_api"
    path = "src/api"
    default-features = false
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.conduit-service]
    package = "conduit_service"
    path = "src/service"
    default-features = false
    
    [workspace.dependencies.conduit-database]
    package = "conduit_database"
    path = "src/database"
    default-features = false
    
    Jason Volk's avatar
    Jason Volk committed
    [workspace.dependencies.conduit-core]
    package = "conduit_core"
    path = "src/core"
    default-features = false
    
    Jason Volk's avatar
    Jason Volk committed
    ###############################################################################
    #
    # Release profiles
    
    🥺's avatar
    🥺 committed
    strip = "symbols"
    
    Jason Volk's avatar
    Jason Volk committed
    lto = "thin"
    
    # release profile with debug symbols
    [profile.release-debuginfo]
    inherits = "release"
    
    Jason Volk's avatar
    Jason Volk committed
    strip = "none"
    
    [profile.release-high-perf]
    inherits = "release"
    
    Jason Volk's avatar
    Jason Volk committed
    lto = "fat"
    
    Jason Volk's avatar
    Jason Volk committed
    # do not use without profile-rustflags enabled
    [profile.release-max-perf]
    inherits = "release"
    strip = "symbols"
    lto = "fat"
    #rustflags = [
    #	'-Ctarget-cpu=native',
    #	'-Ztune-cpu=native',
    #	'-Ctarget-feature=+crt-static',
    #	'-Crelocation-model=static',
    #	'-Ztls-model=local-exec',
    #	'-Zinline-in-all-cgus=true',
    #	'-Zinline-mir=true',
    #	'-Zmir-opt-level=3',
    
    #	'-Clink-arg=-fuse-ld=gold',
    
    Jason Volk's avatar
    Jason Volk committed
    #	'-Clink-arg=-Wl,--threads',
    #	'-Clink-arg=-Wl,--gc-sections',
    
    #	'-Clink-arg=-luring',
    #	'-Clink-arg=-lstdc++',
    #	'-Clink-arg=-lc',
    
    Jason Volk's avatar
    Jason Volk committed
    #	'-Ztime-passes',
    #	'-Ztime-llvm-passes',
    #]
    
    [profile.release-max-perf.build-override]
    inherits = "release-max-perf"
    opt-level = 0
    #rustflags = [
    #	'-Ctarget-feature=-crt-static',
    #]
    
    [profile.bench]
    inherits = "release"
    #rustflags = [
    #	"-Cremark=all",
    #	'-Ztime-passes',
    #	'-Ztime-llvm-passes',
    #]
    
    Jason Volk's avatar
    Jason Volk committed
    ###############################################################################
    #
    # Developer profile
    #
    
    Jason Volk's avatar
    Jason Volk committed
    # To enable hot-reloading:
    # 1. Uncomment all of the rustflags here.
    # 2. Uncomment crate-type=dylib in src/*/Cargo.toml and deps/rust-rocksdb/Cargo.toml
    #
    # opt-level, mir-opt-level, validate-mir are not known to interfere with reloading
    # and can be raised if build times are tolerable.
    
    Jason Volk's avatar
    Jason Volk committed
    [profile.dev]
    debug = 1
    opt-level = 0
    panic = "unwind"
    debug-assertions = true
    incremental = true
    codegen-units = 64
    #rustflags = [
    
    #	'--cfg', 'conduit_mods',
    
    Jason Volk's avatar
    Jason Volk committed
    #	'-Ztime-passes',
    #	'-Zmir-opt-level=0',
    #	'-Zvalidate-mir=false',
    #	'-Ztls-model=global-dynamic',
    #	'-Cprefer-dynamic=true',
    #	'-Zstaticlib-prefer-dynamic=true',
    #	'-Zstaticlib-allow-rdylib-deps=true',
    #	'-Zpacked-bundled-libs=false',
    #	'-Zplt=true',
    #	'-Crpath=true',
    #	'-Clink-arg=-Wl,--as-needed',
    #	'-Clink-arg=-Wl,--allow-shlib-undefined',
    #	'-Clink-arg=-Wl,-z,keep-text-section-prefix',
    #	'-Clink-arg=-Wl,-z,lazy',
    #]
    
    [profile.dev.package.conduit_core]
    inherits = "dev"
    incremental = false
    #rustflags = [
    
    #	'--cfg', 'conduit_mods',
    
    Jason Volk's avatar
    Jason Volk committed
    #	'-Ztime-passes',
    #	'-Zmir-opt-level=0',
    #	'-Ztls-model=initial-exec',
    #	'-Cprefer-dynamic=true',
    #	'-Zstaticlib-prefer-dynamic=true',
    #	'-Zstaticlib-allow-rdylib-deps=true',
    #	'-Zpacked-bundled-libs=false',
    #	'-Zplt=true',
    #	'-Clink-arg=-Wl,--as-needed',
    #	'-Clink-arg=-Wl,--allow-shlib-undefined',
    #	'-Clink-arg=-Wl,-z,lazy',
    #	'-Clink-arg=-Wl,-z,unique',
    #	'-Clink-arg=-Wl,-z,nodlopen',
    #	'-Clink-arg=-Wl,-z,nodelete',
    #]
    
    [profile.dev.package.conduit]
    inherits = "dev"
    incremental = false
    #rustflags = [
    
    #	'--cfg', 'conduit_mods',
    
    Jason Volk's avatar
    Jason Volk committed
    #	'-Ztime-passes',
    #	'-Zmir-opt-level=0',
    #	'-Zvalidate-mir=false',
    #	'-Ztls-model=global-dynamic',
    #	'-Cprefer-dynamic=true',
    #	'-Zexport-executable-symbols=true',
    #	'-Zplt=true',
    #	'-Crpath=true',
    #	'-Clink-arg=-Wl,--as-needed',
    #	'-Clink-arg=-Wl,--allow-shlib-undefined',
    #	'-Clink-arg=-Wl,--export-dynamic',
    #	'-Clink-arg=-Wl,-z,lazy',
    #]
    
    [profile.dev.package.rust-rocksdb-uwu]
    inherits = "dev"
    debug = 'limited'
    incremental = false
    codegen-units = 1
    opt-level = 'z'
    #rustflags = [
    
    #	'--cfg', 'conduit_mods',
    
    Jason Volk's avatar
    Jason Volk committed
    #	'-Ztls-model=initial-exec',
    #	'-Cprefer-dynamic=true',
    #	'-Zstaticlib-prefer-dynamic=true',
    #	'-Zstaticlib-allow-rdylib-deps=true',
    #	'-Zpacked-bundled-libs=true',
    #	'-Zplt=true',
    #	'-Clink-arg=-Wl,--no-as-needed',
    #	'-Clink-arg=-Wl,--allow-shlib-undefined',
    #	'-Clink-arg=-Wl,-z,lazy',
    #	'-Clink-arg=-Wl,-z,nodlopen',
    #	'-Clink-arg=-Wl,-z,nodelete',
    #]
    
    [profile.dev.package.'*']
    inherits = "dev"
    debug = 'limited'
    incremental = false
    codegen-units = 1
    opt-level = 'z'
    #rustflags = [
    
    #	'--cfg', 'conduit_mods',
    
    Jason Volk's avatar
    Jason Volk committed
    #	'-Ztls-model=global-dynamic',
    #	'-Cprefer-dynamic=true',
    #	'-Zstaticlib-prefer-dynamic=true',
    #	'-Zstaticlib-allow-rdylib-deps=true',
    #	'-Zpacked-bundled-libs=true',
    #	'-Zplt=true',
    #	'-Clink-arg=-Wl,--as-needed',
    #	'-Clink-arg=-Wl,-z,lazy',
    #	'-Clink-arg=-Wl,-z,nodelete',
    #]
    
    [profile.test]
    incremental = false
    
    ###############################################################################
    #
    # Linting
    #
    
    🥺's avatar
    🥺 committed
    
    
    [workspace.lints.rust]
    absolute-paths-not-starting-with-crate = "warn"
    
    #box-pointers = "warn"
    
    deprecated-in-future = "warn"
    elided-lifetimes-in-paths = "warn"
    explicit-outlives-requirements = "warn"
    ffi-unwind-calls = "warn"
    keyword-idents = "warn"
    macro-use-extern-crate = "warn"
    meta-variable-misuse = "warn"
    missing-abi = "warn"
    #missing-copy-implementations = "warn"                               # TODO
    #missing-debug-implementations = "warn"                              # TODO
    non-ascii-idents = "warn"
    rust-2021-incompatible-closure-captures = "warn"
    rust-2021-incompatible-or-patterns = "warn"
    rust-2021-prefixes-incompatible-syntax = "warn"
    rust-2021-prelude-collisions = "warn"
    single-use-lifetimes = "warn"
    
    Jason Volk's avatar
    Jason Volk committed
    trivial-casts = "warn"
    
    trivial-numeric-casts = "warn"
    unit-bindings = "warn"
    #unnameable-types = "warn"                                           # TODO
    unreachable-pub = "warn"
    unsafe-op-in-unsafe-fn = "warn"
    unstable-features = "warn"
    unused-extern-crates = "warn"
    unused-import-braces = "warn"
    unused-lifetimes = "warn"
    unused-macro-rules = "warn"
    unused-qualifications = "warn"
    #unused-results = "warn"                                             # TODO
    
    ## some sadness
    let_underscore_drop = "allow"
    missing_docs = "allow"
    
    # cfgs cannot be limited to expected cfgs or their de facto non-transitive/opt-in use-case e.g.
    # tokio_unstable will warn.
    unexpected_cfgs = "allow"
    
    # this seems to suggest broken code and is not working correctly
    unused_braces = "allow"
    # buggy, but worth checking on occasionally
    unused_crate_dependencies = "allow"
    unsafe_code = "allow"
    variant_size_differences = "allow"
    
    #######################################
    #
    # Clippy lints
    #
    
    
    ###################
    cargo = "warn"
    
    ## some sadness
    multiple_crate_versions = { level = "allow", priority = 1 }
    
    ###################
    complexity = "warn"
    
    ###################
    correctness = "warn"
    
    ###################
    nursery = "warn"
    
    
    ## some sadness
    
    missing_const_for_fn = { level = "allow", priority = 1 }             # TODO
    needless_collect = { level = "allow", priority = 1 }                 # TODO
    option_if_let_else = { level = "allow", priority = 1 }               # TODO
    redundant_pub_crate = { level = "allow", priority = 1 }              # TODO
    significant_drop_in_scrutinee = { level = "allow", priority = 1 }    # TODO
    significant_drop_tightening = { level = "allow", priority = 1 }      # TODO
    
    ###################
    pedantic = "warn"
    
    ## some sadness
    cast_possible_truncation = "allow"
    cast_precision_loss = "allow"
    cast_sign_loss = "allow"
    doc_markdown = "allow"
    error_impl_error = "allow"
    expect_used = "allow"
    if_not_else = "allow"
    if_then_some_else_none = "allow"
    implicit_return = "allow"
    inline_always = "allow"
    map_err_ignore = "allow"
    missing_docs_in_private_items = "allow"
    missing_errors_doc = "allow"
    missing_panics_doc = "allow"
    mod_module_files = "allow"
    module_name_repetitions = "allow"
    multiple_inherent_impl = "allow"
    no_effect_underscore_binding = "allow"
    ref_patterns = "allow"
    same_name_method = "allow"
    similar_names = { level = "allow", priority = 1 }
    single_call_fn = "allow"
    string_add = "allow"
    string_slice = "allow"
    struct_field_names = { level = "allow", priority = 1 }
    unnecessary_wraps = { level = "allow", priority = 1 }
    unused_async = { level = "allow", priority = 1 }
    unwrap_used = "allow"
    
    ###################
    perf = "warn"
    
    ###################
    #restriction = "warn"
    
    #arithmetic_side_effects = "warn"                                    # TODO
    #as_conversions = "warn"                                             # TODO
    
    assertions_on_result_states = "warn"
    
    default_union_representation = "warn"
    deref_by_slicing = "warn"
    empty_drop = "warn"
    
    empty_structs_with_brackets = "warn"
    
    exit = "warn"
    filetype_is_file = "warn"
    float_cmp_const = "warn"
    
    fn_to_numeric_cast_any = "warn"
    
    format_push_string = "warn"
    
    impl_trait_in_params = "warn"
    
    let_underscore_must_use = "warn"
    let_underscore_untyped = "warn"
    
    lossy_float_literal = "warn"
    mem_forget = "warn"
    
    🥺's avatar
    🥺 committed
    missing_assert_message = "warn"
    
    mutex_atomic = "warn"
    
    pub_without_shorthand = "warn"
    rc_buffer = "warn"
    rc_mutex = "warn"
    redundant_type_annotations = "warn"
    rest_pat_in_fully_bound_structs = "warn"
    
    semicolon_outside_block = "warn"
    
    string_lit_chars_any = "warn"
    
    string_to_string = "warn"
    
    suspicious_xor_used_as_pow = "warn"
    
    tests_outside_test_module = "warn"
    
    try_err = "warn"
    
    undocumented_unsafe_blocks = "warn"
    
    unnecessary_safety_comment = "warn"
    unnecessary_safety_doc = "warn"
    unnecessary_self_imports = "warn"
    
    unneeded_field_pattern = "warn"
    unseparated_literal_suffix = "warn"
    
    verbose_file_reads = "warn"
    
    ###################
    style = "warn"
    
    
    ## some sadness
    # trivial assertions are quite alright
    assertions_on_constants = "allow"
    
    
    ###################
    suspicious = "warn"
    
    ## some sadness
    
    Jason Volk's avatar
    Jason Volk committed
    let_underscore_future = "allow"