[package] name = "vaultwarden" version = "1.0.0" authors = ["Daniel GarcĂ­a "] edition = "2021" rust-version = "1.60" 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"] # 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.34", features = ["log"] } # Needed to have lettre and webauthn-rs trace logging to work backtrace = "0.3.65" # Logging panics to logfile instead stderr only # A `dotenv` implementation for Rust dotenvy = { version = "0.15.1", default-features = false } # Lazy initialization once_cell = "1.10.0" # Numerical libraries num-traits = "0.2.15" num-derive = "0.3.3" # Web framework rocket = { version = "0.5.0-rc.1", features = ["tls", "json"], default-features = false } # WebSockets libraries ws = { version = "0.11.1", package = "parity-ws" } rmpv = "1.0.0" # MessagePack library chashmap = "2.2.2" # Concurrent hashmap implementation # Async futures futures = "0.3.21" tokio = { version = "1.18.1", features = ["rt-multi-thread", "fs", "io-util", "parking_lot", "time"] } # A generic serialization/deserialization framework serde = { version = "1.0.137", features = ["derive"] } serde_json = "1.0.81" # A safe, extensible ORM and Query builder diesel = { version = "1.4.8", features = ["chrono", "r2d2"] } diesel_migrations = "1.4.0" # Bundled SQLite libsqlite3-sys = { version = "0.22.2", features = ["bundled"], optional = true } # Crypto-related libraries rand = "0.8.5" ring = "0.16.20" # UUID generation uuid = { version = "1.0.0", features = ["v4"] } # Date and time libraries chrono = { version = "0.4.19", features = ["clock", "serde"], default-features = false } chrono-tz = "0.6.1" time = "0.3.9" # Job scheduler job_scheduler = "1.2.1" # Data encoding library Hex/Base32/Base64 data-encoding = "2.3.2" # JWT library jsonwebtoken = "8.1.0" # TOTP library totp-lite = "1.0.3" # Yubico Library yubico = { version = "0.10.0", features = ["online-tokio"], default-features = false } # WebAuthn libraries webauthn-rs = "0.3.2" # Handling of URL's for WebAuthn url = "2.2.2" # Email libraries idna = "0.2.3" # Punycode conversion lettre = { version = "0.10.0-rc.6", features = ["smtp-transport", "builder", "serde", "native-tls", "hostname", "tracing"], default-features = false } percent-encoding = "2.1.0" # URL encoding library used for URL's in the emails # Template library handlebars = { version = "4.2.2", features = ["dir_source"] } # HTTP client reqwest = { version = "0.11.10", features = ["stream", "json", "gzip", "brotli", "socks", "cookies", "trust-dns"] } # For favicon extraction from main website html5gum = "0.4.0" regex = { version = "1.5.5", features = ["std", "perf", "unicode-perl"], default-features = false } data-url = "0.1.1" bytes = "1.1.0" cached = "0.34.0" # Used for custom short lived cookie jar during favicon extraction cookie = "0.16.0" cookie_store = "0.16.0" # Used by U2F, JWT and Postgres openssl = "0.10.40" # CLI argument parsing pico-args = "0.4.2" # Macro ident concatenation paste = "1.0.7" governor = "0.4.2" # Capture CTRL+C ctrlc = { version = "3.2.2", features = ["termination"] } # Allow overriding the default memory allocator # Mainly used for the musl builds, since the default musl malloc is very slow mimalloc = { version = "0.1.29", features = ["secure"], default-features = false, optional = true } [patch.crates-io] rocket = { git = 'https://github.com/SergioBenitez/Rocket', rev = '761ffb009ea9d35c32d3c8eecd948ec4434cd0a3' } # The maintainer of the `job_scheduler` crate doesn't seem to have responded # to any issues or PRs for almost a year (as of April 2021). This hopefully # temporary fork updates Cargo.toml to use more up-to-date dependencies. # In particular, `cron` has since implemented parsing of some common syntax # that wasn't previously supported (https://github.com/zslayton/cron/pull/64). # 2022-05-04: Forked/Updated the job_scheduler again use the latest dependencies and some fixes. job_scheduler = { git = 'https://github.com/BlackDex/job_scheduler', rev = '9100fc596a083fd9c0b560f8f11f108e0a19d07e' } # Strip debuginfo from the release builds # Also enable thin LTO for some optimizations [profile.release] strip = "debuginfo" lto = "thin"