2018-02-10 01:00:55 +01:00
|
|
|
[package]
|
2021-04-27 23:18:32 +02:00
|
|
|
name = "vaultwarden"
|
2018-08-21 22:21:54 +02:00
|
|
|
version = "1.0.0"
|
2018-02-10 01:00:55 +01:00
|
|
|
authors = ["Daniel García <dani-garcia@users.noreply.github.com>"]
|
2021-11-05 19:18:54 +01:00
|
|
|
edition = "2021"
|
2022-02-22 20:48:00 +01:00
|
|
|
rust-version = "1.59"
|
2021-09-22 20:26:48 +02:00
|
|
|
resolver = "2"
|
2018-02-10 01:00:55 +01:00
|
|
|
|
2021-04-27 23:18:32 +02:00
|
|
|
repository = "https://github.com/dani-garcia/vaultwarden"
|
2018-12-30 00:04:22 +01:00
|
|
|
readme = "README.md"
|
|
|
|
license = "GPL-3.0-only"
|
|
|
|
publish = false
|
|
|
|
build = "build.rs"
|
|
|
|
|
2018-12-06 20:35:25 +01:00
|
|
|
[features]
|
2021-11-07 18:53:39 +01:00
|
|
|
# default = ["sqlite"]
|
2019-03-29 20:27:20 +01:00
|
|
|
# Empty to keep compatibility, prefer to set USE_SYSLOG=true
|
|
|
|
enable_syslog = []
|
2019-05-27 22:58:52 +02:00
|
|
|
mysql = ["diesel/mysql", "diesel_migrations/mysql"]
|
2020-01-18 20:09:52 +01:00
|
|
|
postgresql = ["diesel/postgres", "diesel_migrations/postgres"]
|
2019-05-27 23:31:56 +02:00
|
|
|
sqlite = ["diesel/sqlite", "diesel_migrations/sqlite", "libsqlite3-sys"]
|
2020-09-25 23:23:13 +02:00
|
|
|
# Enable to use a vendored and statically linked openssl
|
|
|
|
vendored_openssl = ["openssl/vendored"]
|
2022-03-20 18:51:24 +01:00
|
|
|
# Enable MiMalloc memory allocator to replace the default malloc
|
|
|
|
# This can improve performance for Alpine builds
|
|
|
|
enable_mimalloc = ["mimalloc"]
|
2018-12-06 20:35:25 +01:00
|
|
|
|
2020-07-14 23:44:01 +02:00
|
|
|
# Enable unstable features, requires nightly
|
2020-09-11 23:52:20 +02:00
|
|
|
# Currently only used to enable rusts official ip support
|
2020-07-14 23:44:01 +02:00
|
|
|
unstable = []
|
|
|
|
|
2019-04-02 22:35:22 +02:00
|
|
|
[target."cfg(not(windows))".dependencies]
|
2022-02-07 22:26:22 +01:00
|
|
|
# Logging
|
|
|
|
syslog = "4.0.1" # Needs to be v4 until fern is updated
|
2019-04-02 22:35:22 +02:00
|
|
|
|
2018-02-10 01:00:55 +01:00
|
|
|
[dependencies]
|
2022-02-07 22:26:22 +01:00
|
|
|
# Logging
|
2022-03-26 16:35:54 +01:00
|
|
|
log = "0.4.16"
|
2022-02-07 22:26:22 +01:00
|
|
|
fern = { version = "0.6.0", features = ["syslog-4"] }
|
2022-03-03 21:00:10 +01:00
|
|
|
tracing = { version = "0.1.32", features = ["log"] } # Needed to have lettre and webauthn-rs trace logging to work
|
2022-02-07 22:26:22 +01:00
|
|
|
backtrace = "0.3.64" # Logging panics to logfile instead stderr only
|
2021-11-07 18:53:39 +01:00
|
|
|
|
2022-02-07 22:26:22 +01:00
|
|
|
# A `dotenv` implementation for Rust
|
2022-03-20 18:51:24 +01:00
|
|
|
dotenvy = { version = "0.15.1", default-features = false }
|
2021-05-16 15:29:13 +02:00
|
|
|
|
2022-02-07 22:26:22 +01:00
|
|
|
# Lazy initialization
|
2022-03-03 21:00:10 +01:00
|
|
|
once_cell = "1.10.0"
|
2018-02-10 01:00:55 +01:00
|
|
|
|
2022-02-07 22:26:22 +01:00
|
|
|
# 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 }
|
2018-08-30 17:43:46 +02:00
|
|
|
|
2022-02-07 22:26:22 +01:00
|
|
|
# WebSockets libraries
|
|
|
|
ws = { version = "0.11.1", package = "parity-ws" }
|
|
|
|
rmpv = "1.0.0" # MessagePack library
|
|
|
|
chashmap = "2.2.2" # Concurrent hashmap implementation
|
2018-08-30 17:43:46 +02:00
|
|
|
|
2022-02-07 22:26:22 +01:00
|
|
|
# Async futures
|
|
|
|
futures = "0.3.21"
|
|
|
|
tokio = { version = "1.17.0", features = ["rt-multi-thread", "fs", "io-util", "parking_lot"] }
|
2018-08-30 17:43:46 +02:00
|
|
|
|
2018-02-10 01:00:55 +01:00
|
|
|
# A generic serialization/deserialization framework
|
2022-01-30 22:24:42 +01:00
|
|
|
serde = { version = "1.0.136", features = ["derive"] }
|
2022-02-07 22:26:22 +01:00
|
|
|
serde_json = "1.0.79"
|
2018-12-06 20:35:25 +01:00
|
|
|
|
2018-02-10 01:00:55 +01:00
|
|
|
# A safe, extensible ORM and Query builder
|
2021-09-22 20:26:48 +02:00
|
|
|
diesel = { version = "1.4.8", features = [ "chrono", "r2d2"] }
|
2019-06-02 00:28:20 +02:00
|
|
|
diesel_migrations = "1.4.0"
|
2019-05-26 23:02:41 +02:00
|
|
|
|
2020-03-02 20:57:06 +01:00
|
|
|
# Bundled SQLite
|
2021-06-09 10:44:29 +02:00
|
|
|
libsqlite3-sys = { version = "0.22.2", features = ["bundled"], optional = true }
|
2018-05-07 21:33:54 +02:00
|
|
|
|
2020-08-23 01:07:53 +02:00
|
|
|
# Crypto-related libraries
|
2022-02-07 22:26:22 +01:00
|
|
|
rand = "0.8.5"
|
2021-02-06 16:49:28 +01:00
|
|
|
ring = "0.16.20"
|
2018-02-10 01:00:55 +01:00
|
|
|
|
|
|
|
# UUID generation
|
2021-01-31 20:07:42 +01:00
|
|
|
uuid = { version = "0.8.2", features = ["v4"] }
|
2018-02-10 01:00:55 +01:00
|
|
|
|
2020-07-08 06:30:18 +02:00
|
|
|
# Date and time libraries
|
2022-02-07 22:26:22 +01:00
|
|
|
chrono = { version = "0.4.19", features = ["clock", "serde"], default-features = false }
|
2021-12-26 12:40:12 +01:00
|
|
|
chrono-tz = "0.6.1"
|
2021-06-07 23:34:00 +02:00
|
|
|
time = "0.2.27"
|
2018-02-10 01:00:55 +01:00
|
|
|
|
2021-04-03 05:16:49 +02:00
|
|
|
# Job scheduler
|
|
|
|
job_scheduler = "1.2.1"
|
|
|
|
|
2022-02-07 22:26:22 +01:00
|
|
|
# Data encoding library Hex/Base32/Base64
|
2021-01-31 20:07:42 +01:00
|
|
|
data-encoding = "2.3.2"
|
2018-02-10 01:00:55 +01:00
|
|
|
|
|
|
|
# JWT library
|
2022-03-03 21:00:10 +01:00
|
|
|
jsonwebtoken = "8.0.1"
|
2018-02-10 01:00:55 +01:00
|
|
|
|
2022-02-07 22:26:22 +01:00
|
|
|
# TOTP library
|
|
|
|
totp-lite = "1.0.3"
|
2018-07-12 21:46:50 +02:00
|
|
|
|
2018-11-16 02:34:17 +01:00
|
|
|
# Yubico Library
|
2021-02-24 20:25:22 +01:00
|
|
|
yubico = { version = "0.10.0", features = ["online-tokio"], default-features = false }
|
2018-11-16 02:34:17 +01:00
|
|
|
|
2022-03-27 17:25:04 +02:00
|
|
|
# WebAuthn libraries
|
2022-02-07 22:26:22 +01:00
|
|
|
webauthn-rs = "0.3.2"
|
2018-02-10 01:00:55 +01:00
|
|
|
|
2022-02-07 22:26:22 +01:00
|
|
|
# Handling of URL's for WebAuthn
|
|
|
|
url = "2.2.2"
|
2018-07-12 21:46:50 +02:00
|
|
|
|
2018-09-13 15:59:45 +02:00
|
|
|
# Email libraries
|
2021-11-05 19:18:54 +01:00
|
|
|
lettre = { version = "0.10.0-rc.4", features = ["smtp-transport", "builder", "serde", "native-tls", "hostname", "tracing"], default-features = false }
|
2022-02-07 22:26:22 +01:00
|
|
|
idna = "0.2.3" # Punycode conversion
|
|
|
|
percent-encoding = "2.1.0" # URL encoding library used for URL's in the emails
|
2018-08-15 08:32:19 +02:00
|
|
|
|
2019-01-13 01:39:29 +01:00
|
|
|
# Template library
|
2022-03-03 21:00:10 +01:00
|
|
|
handlebars = { version = "4.2.2", features = ["dir_source"] }
|
2019-01-13 01:39:29 +01:00
|
|
|
|
2022-02-07 22:26:22 +01:00
|
|
|
# HTTP client
|
2022-03-20 18:51:24 +01:00
|
|
|
reqwest = { version = "0.11.10", features = ["stream", "json", "gzip", "brotli", "socks", "cookies", "trust-dns"] }
|
2022-02-07 22:26:22 +01:00
|
|
|
|
2019-01-27 15:39:19 +01:00
|
|
|
# For favicon extraction from main website
|
2022-02-22 20:48:00 +01:00
|
|
|
html5gum = "0.4.0"
|
2022-03-03 21:00:10 +01:00
|
|
|
regex = { version = "1.5.5", features = ["std", "perf", "unicode-perl"], default-features = false }
|
2021-11-28 13:02:27 +01:00
|
|
|
data-url = "0.1.1"
|
2022-02-07 22:26:22 +01:00
|
|
|
bytes = "1.1.0"
|
2022-03-03 21:00:10 +01:00
|
|
|
cached = "0.34.0"
|
2022-02-07 22:26:22 +01:00
|
|
|
|
|
|
|
# Used for custom short lived cookie jar during favicon extraction
|
|
|
|
cookie = "0.15.1"
|
|
|
|
cookie_store = "0.15.1"
|
2019-01-27 15:39:19 +01:00
|
|
|
|
2020-01-18 20:09:52 +01:00
|
|
|
# Used by U2F, JWT and Postgres
|
2021-11-05 19:18:54 +01:00
|
|
|
openssl = "0.10.38"
|
2019-09-12 22:12:22 +02:00
|
|
|
|
2020-03-02 20:57:06 +01:00
|
|
|
# CLI argument parsing
|
2021-06-07 23:34:00 +02:00
|
|
|
pico-args = "0.4.2"
|
2020-03-02 20:57:06 +01:00
|
|
|
|
2020-08-18 17:15:44 +02:00
|
|
|
# Macro ident concatenation
|
2021-11-28 13:02:27 +01:00
|
|
|
paste = "1.0.6"
|
2022-02-07 22:26:22 +01:00
|
|
|
governor = "0.4.2"
|
2020-08-18 17:15:44 +02:00
|
|
|
|
2022-02-07 22:26:22 +01:00
|
|
|
# Capture CTRL+C
|
2021-11-07 18:53:39 +01:00
|
|
|
ctrlc = { version = "3.2.1", features = ["termination"] }
|
|
|
|
|
2022-03-20 18:51:24 +01:00
|
|
|
# Allow overriding the default memory allocator
|
|
|
|
# Mainly used for the musl builds, since the default musl malloc is very slow
|
|
|
|
mimalloc = { version = "0.1.28", features = ["secure"], default-features = false, optional = true }
|
|
|
|
|
2018-02-10 01:00:55 +01:00
|
|
|
[patch.crates-io]
|
2022-03-03 21:00:10 +01:00
|
|
|
rocket = { git = 'https://github.com/SergioBenitez/Rocket', rev = 'ae0ccf43f11be5c00bb9cd49996c8bb06a7e1651' }
|
2019-11-06 21:37:51 +01:00
|
|
|
|
2021-04-03 05:16:49 +02:00
|
|
|
# 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' }
|
2022-02-22 20:48:00 +01:00
|
|
|
|
|
|
|
# Strip debuginfo from the release builds
|
|
|
|
# Also enable thin LTO for some optimizations
|
|
|
|
[profile.release]
|
|
|
|
strip = "debuginfo"
|
|
|
|
lto = "thin"
|