[package] name = "vaultwarden" version = "1.0.0" authors = ["Daniel GarcĂ­a "] edition = "2021" rust-version = "1.58.1" 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 unstable features, requires nightly # Currently only used to enable rusts official ip support unstable = [] [target."cfg(not(windows))".dependencies] # Logging syslog = "4.0.1" # Needs to be v4 until fern is updated [dependencies] # Logging log = "0.4.14" fern = { version = "0.6.0", features = ["syslog-4"] } tracing = { version = "0.1.31", features = ["log"] } # Needed to have lettre and webauthn-rs trace logging to work backtrace = "0.3.64" # Logging panics to logfile instead stderr only # A `dotenv` implementation for Rust dotenv = { version = "0.15.0", default-features = false } # Lazy initialization once_cell = "1.9.0" # Numerical libraries num-traits = "0.2.14" 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.17.0", features = ["rt-multi-thread", "fs", "io-util", "parking_lot"] } # A generic serialization/deserialization framework serde = { version = "1.0.136", features = ["derive"] } serde_json = "1.0.79" # 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 = "0.8.2", features = ["v4"] } # Date and time libraries chrono = { version = "0.4.19", features = ["clock", "serde"], default-features = false } chrono-tz = "0.6.1" time = "0.2.27" # Job scheduler job_scheduler = "1.2.1" # Data encoding library Hex/Base32/Base64 data-encoding = "2.3.2" # JWT library jsonwebtoken = "7.2.0" # TOTP library totp-lite = "1.0.3" # Yubico Library yubico = { version = "0.10.0", features = ["online-tokio"], default-features = false } # U2F libraries u2f = "0.2.0" webauthn-rs = "0.3.2" # Handling of URL's for WebAuthn url = "2.2.2" # Email libraries lettre = { version = "0.10.0-rc.4", features = ["smtp-transport", "builder", "serde", "native-tls", "hostname", "tracing"], default-features = false } idna = "0.2.3" # Punycode conversion percent-encoding = "2.1.0" # URL encoding library used for URL's in the emails # Template library handlebars = { version = "4.2.1", features = ["dir_source"] } # HTTP client reqwest = { version = "0.11.9", features = ["stream", "json", "gzip", "brotli", "socks", "cookies", "trust-dns"] } # For favicon extraction from main website html5ever = "0.25.1" markup5ever_rcdom = "0.1.0" regex = { version = "1.5.4", features = ["std", "perf", "unicode-perl"], default-features = false } data-url = "0.1.1" bytes = "1.1.0" # Used for custom short lived cookie jar during favicon extraction cookie = "0.15.1" cookie_store = "0.15.1" # Used by U2F, JWT and Postgres openssl = "0.10.38" # CLI argument parsing pico-args = "0.4.2" # Macro ident concatenation paste = "1.0.6" governor = "0.4.2" # Capture CTRL+C ctrlc = { version = "3.2.1", features = ["termination"] } [patch.crates-io] rocket = { git = 'https://github.com/SergioBenitez/Rocket', rev = '66d18bf66517e2765494d082629e9b9748ff8ad6' } # 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). job_scheduler = { git = 'https://github.com/jjlin/job_scheduler', rev = 'ee023418dbba2bfe1e30a5fd7d937f9e33739806' }