[package] name = "vaultwarden" version = "1.0.0" authors = ["Daniel GarcĂ­a "] edition = "2021" rust-version = "1.60.0" resolver = "2" repository = "https://github.com/dani-garcia/vaultwarden" readme = "README.md" license = "GPL-3.0-only" publish = false build = "build.rs" [features] # default = ["sqlite"] # Empty to keep compatibility, prefer to set USE_SYSLOG=true enable_syslog = [] mysql = ["diesel/mysql", "diesel_migrations/mysql"] postgresql = ["diesel/postgres", "diesel_migrations/postgres"] sqlite = ["diesel/sqlite", "diesel_migrations/sqlite", "libsqlite3-sys"] # Enable to use a vendored and statically linked openssl vendored_openssl = ["openssl/vendored"] # Enable MiMalloc memory allocator to replace the default malloc # This can improve performance for Alpine builds enable_mimalloc = ["mimalloc"] # This is a development dependency, and should only be used during development! # It enables the usage of the diesel_logger crate, which is able to output the generated queries. # You also need to set an env variable `QUERY_LOGGER=1` to fully activate this so you do not have to re-compile # if you want to turn off the logging for a specific run. query_logger = ["diesel_logger"] # Enable unstable features, requires nightly # Currently only used to enable rusts official ip support unstable = [] [target."cfg(not(windows))".dependencies] # Logging syslog = "6.0.1" # Needs to be v4 until fern is updated [dependencies] # Logging log = "0.4.17" fern = { version = "0.6.1", features = ["syslog-6"] } tracing = { version = "0.1.37", features = ["log"] } # Needed to have lettre and webauthn-rs trace logging to work backtrace = "0.3.66" # Logging panics to logfile instead stderr only # A `dotenv` implementation for Rust dotenvy = { version = "0.15.6", default-features = false } # Lazy initialization once_cell = "1.16.0" # Numerical libraries num-traits = "0.2.15" num-derive = "0.3.3" # Web framework rocket = { version = "0.5.0-rc.2", features = ["tls", "json"], default-features = false } # WebSockets libraries tokio-tungstenite = "0.17.2" rmpv = "1.0.0" # MessagePack library dashmap = "5.4.0" # Async futures futures = "0.3.25" tokio = { version = "1.21.2", features = ["rt-multi-thread", "fs", "io-util", "parking_lot", "time"] } # A generic serialization/deserialization framework serde = { version = "1.0.147", features = ["derive"] } serde_json = "1.0.87" # A safe, extensible ORM and Query builder diesel = { version = "2.0.2", features = ["chrono", "r2d2"] } diesel_migrations = "2.0.0" diesel_logger = { version = "0.2.0", optional = true } # Bundled SQLite libsqlite3-sys = { version = "0.25.2", features = ["bundled"], optional = true } # Crypto-related libraries rand = { version = "0.8.5", features = ["small_rng"] } ring = "0.16.20" # UUID generation uuid = { version = "1.2.1", features = ["v4"] } # Date and time libraries chrono = { version = "0.4.22", features = ["clock", "serde"], default-features = false } chrono-tz = "0.8.0" time = "0.3.17" # Job scheduler job_scheduler_ng = "2.0.2" # Data encoding library Hex/Base32/Base64 data-encoding = "2.3.2" # JWT library jsonwebtoken = "8.1.1" # TOTP library totp-lite = "2.0.0" # Yubico Library yubico = { version = "0.11.0", features = ["online-tokio"], default-features = false } # WebAuthn libraries webauthn-rs = "0.3.2" # Handling of URL's for WebAuthn url = "2.3.1" # Email librariese-Base, Update crates and small change. lettre = { version = "0.10.1", features = ["smtp-transport", "builder", "serde", "tokio1-native-tls", "hostname", "tracing", "tokio1"], default-features = false } percent-encoding = "2.2.0" # URL encoding library used for URL's in the emails email_address = "0.2.4" # Template library handlebars = { version = "4.3.5", features = ["dir_source"] } # HTTP client reqwest = { version = "0.11.12", features = ["stream", "json", "gzip", "brotli", "socks", "cookies", "trust-dns"] } # For favicon extraction from main website html5gum = "0.5.2" regex = { version = "1.7.0", features = ["std", "perf", "unicode-perl"], default-features = false } data-url = "0.2.0" bytes = "1.2.1" cached = "0.40.0" # Used for custom short lived cookie jar during favicon extraction cookie = "0.16.1" cookie_store = "0.19.0" # Used by U2F, JWT and Postgres openssl = "0.10.42" # CLI argument parsing pico-args = "0.5.0" # Macro ident concatenation paste = "1.0.9" governor = "0.5.0" # Capture CTRL+C ctrlc = { version = "3.2.3", features = ["termination"] } # Check client versions for specific features. semver = "1.0.14" # Allow overriding the default memory allocator # Mainly used for the musl builds, since the default musl malloc is very slow mimalloc = { version = "0.1.31", features = ["secure"], default-features = false, optional = true } [patch.crates-io] # Using a patched version of multer-rs (Used by Rocket) to fix attachment/send file uploads # Issue: https://github.com/dani-garcia/vaultwarden/issues/2644 # Patch: https://github.com/BlackDex/multer-rs/commit/477d16b7fa0f361b5c2a5ba18a5b28bec6d26a8a multer = { git = "https://github.com/BlackDex/multer-rs", rev = "477d16b7fa0f361b5c2a5ba18a5b28bec6d26a8a" } # Strip debuginfo from the release builds # Also enable thin LTO for some optimizations [profile.release] strip = "debuginfo" lto = "thin"