2018-02-10 03:00:55 +03:00
|
|
|
[package]
|
2021-04-28 00:18:32 +03:00
|
|
|
name = "vaultwarden"
|
2018-08-21 23:21:54 +03:00
|
|
|
version = "1.0.0"
|
2018-02-10 03:00:55 +03:00
|
|
|
authors = ["Daniel García <dani-garcia@users.noreply.github.com>"]
|
2021-11-05 21:18:54 +03:00
|
|
|
edition = "2021"
|
2023-01-09 18:49:26 +03:00
|
|
|
rust-version = "1.61.0"
|
2021-09-22 21:26:48 +03:00
|
|
|
resolver = "2"
|
2018-02-10 03:00:55 +03:00
|
|
|
|
2021-04-28 00:18:32 +03:00
|
|
|
repository = "https://github.com/dani-garcia/vaultwarden"
|
2018-12-30 02:04:22 +03:00
|
|
|
readme = "README.md"
|
2022-06-16 16:13:10 +03:00
|
|
|
license = "AGPL-3.0-only"
|
2018-12-30 02:04:22 +03:00
|
|
|
publish = false
|
|
|
|
build = "build.rs"
|
|
|
|
|
2018-12-06 22:35:25 +03:00
|
|
|
[features]
|
2021-11-07 20:53:39 +03:00
|
|
|
# default = ["sqlite"]
|
2019-03-29 22:27:20 +03:00
|
|
|
# Empty to keep compatibility, prefer to set USE_SYSLOG=true
|
|
|
|
enable_syslog = []
|
2019-05-27 23:58:52 +03:00
|
|
|
mysql = ["diesel/mysql", "diesel_migrations/mysql"]
|
2020-01-18 22:09:52 +03:00
|
|
|
postgresql = ["diesel/postgres", "diesel_migrations/postgres"]
|
2019-05-28 00:31:56 +03:00
|
|
|
sqlite = ["diesel/sqlite", "diesel_migrations/sqlite", "libsqlite3-sys"]
|
2020-09-26 00:23:13 +03:00
|
|
|
# Enable to use a vendored and statically linked openssl
|
|
|
|
vendored_openssl = ["openssl/vendored"]
|
2022-03-20 20:51:24 +03:00
|
|
|
# Enable MiMalloc memory allocator to replace the default malloc
|
|
|
|
# This can improve performance for Alpine builds
|
|
|
|
enable_mimalloc = ["mimalloc"]
|
2022-12-03 20:25:59 +03:00
|
|
|
# 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"]
|
2018-12-06 22:35:25 +03:00
|
|
|
|
2020-07-15 00:44:01 +03:00
|
|
|
# Enable unstable features, requires nightly
|
2020-09-12 00:52:20 +03:00
|
|
|
# Currently only used to enable rusts official ip support
|
2020-07-15 00:44:01 +03:00
|
|
|
unstable = []
|
|
|
|
|
2019-04-02 23:35:22 +03:00
|
|
|
[target."cfg(not(windows))".dependencies]
|
2022-02-08 00:26:22 +03:00
|
|
|
# Logging
|
2022-04-23 19:18:15 +03:00
|
|
|
syslog = "6.0.1" # Needs to be v4 until fern is updated
|
2019-04-02 23:35:22 +03:00
|
|
|
|
2018-02-10 03:00:55 +03:00
|
|
|
[dependencies]
|
2022-02-08 00:26:22 +03:00
|
|
|
# Logging
|
2022-05-04 22:13:05 +03:00
|
|
|
log = "0.4.17"
|
2022-04-23 19:18:15 +03:00
|
|
|
fern = { version = "0.6.1", features = ["syslog-6"] }
|
2022-10-09 18:40:45 +03:00
|
|
|
tracing = { version = "0.1.37", features = ["log"] } # Needed to have lettre and webauthn-rs trace logging to work
|
2022-05-04 22:13:05 +03:00
|
|
|
|
2022-12-15 19:15:48 +03:00
|
|
|
backtrace = "0.3.67" # Logging panics to logfile instead stderr only
|
2021-11-07 20:53:39 +03:00
|
|
|
|
2022-02-08 00:26:22 +03:00
|
|
|
# A `dotenv` implementation for Rust
|
2022-05-21 00:39:47 +03:00
|
|
|
dotenvy = { version = "0.15.6", default-features = false }
|
2021-05-16 16:29:13 +03:00
|
|
|
|
2022-02-08 00:26:22 +03:00
|
|
|
# Lazy initialization
|
2023-02-22 00:48:20 +03:00
|
|
|
once_cell = "1.17.1"
|
2018-02-10 03:00:55 +03:00
|
|
|
|
2022-02-08 00:26:22 +03:00
|
|
|
# Numerical libraries
|
2022-05-04 22:13:05 +03:00
|
|
|
num-traits = "0.2.15"
|
2022-02-08 00:26:22 +03:00
|
|
|
num-derive = "0.3.3"
|
|
|
|
|
|
|
|
# Web framework
|
2022-05-11 23:03:07 +03:00
|
|
|
rocket = { version = "0.5.0-rc.2", features = ["tls", "json"], default-features = false }
|
2018-08-30 18:43:46 +03:00
|
|
|
|
2022-02-08 00:26:22 +03:00
|
|
|
# WebSockets libraries
|
2022-12-01 19:18:29 +03:00
|
|
|
tokio-tungstenite = "0.18.0"
|
2022-02-08 00:26:22 +03:00
|
|
|
rmpv = "1.0.0" # MessagePack library
|
2023-02-08 19:13:14 +03:00
|
|
|
|
|
|
|
# Concurrent HashMap used for WebSocket messaging and favicons
|
2022-09-05 00:18:27 +03:00
|
|
|
dashmap = "5.4.0"
|
2018-08-30 18:43:46 +03:00
|
|
|
|
2022-02-08 00:26:22 +03:00
|
|
|
# Async futures
|
2023-02-08 19:13:14 +03:00
|
|
|
futures = "0.3.26"
|
|
|
|
tokio = { version = "1.25.0", features = ["rt-multi-thread", "fs", "io-util", "parking_lot", "time", "signal"] }
|
2018-08-30 18:43:46 +03:00
|
|
|
|
2018-02-10 03:00:55 +03:00
|
|
|
# A generic serialization/deserialization framework
|
2023-01-09 18:49:26 +03:00
|
|
|
serde = { version = "1.0.152", features = ["derive"] }
|
2023-02-08 19:13:14 +03:00
|
|
|
serde_json = "1.0.93"
|
2018-12-06 22:35:25 +03:00
|
|
|
|
2018-02-10 03:00:55 +03:00
|
|
|
# A safe, extensible ORM and Query builder
|
2023-01-24 22:39:09 +03:00
|
|
|
diesel = { version = "2.0.3", features = ["chrono", "r2d2"] }
|
2022-05-21 00:39:47 +03:00
|
|
|
diesel_migrations = "2.0.0"
|
2022-12-03 20:25:59 +03:00
|
|
|
diesel_logger = { version = "0.2.0", optional = true }
|
2019-05-27 00:02:41 +03:00
|
|
|
|
2023-02-08 19:13:14 +03:00
|
|
|
# Bundled/Static SQLite
|
2022-11-04 14:56:02 +03:00
|
|
|
libsqlite3-sys = { version = "0.25.2", features = ["bundled"], optional = true }
|
2018-05-07 22:33:54 +03:00
|
|
|
|
2020-08-23 02:07:53 +03:00
|
|
|
# Crypto-related libraries
|
2022-06-04 16:13:10 +03:00
|
|
|
rand = { version = "0.8.5", features = ["small_rng"] }
|
2021-02-06 18:49:28 +03:00
|
|
|
ring = "0.16.20"
|
2018-02-10 03:00:55 +03:00
|
|
|
|
|
|
|
# UUID generation
|
2023-02-08 19:13:14 +03:00
|
|
|
uuid = { version = "1.3.0", features = ["v4"] }
|
2018-02-10 03:00:55 +03:00
|
|
|
|
2020-07-08 07:30:18 +03:00
|
|
|
# Date and time libraries
|
2022-12-01 19:18:29 +03:00
|
|
|
chrono = { version = "0.4.23", features = ["clock", "serde"], default-features = false }
|
|
|
|
chrono-tz = "0.8.1"
|
2023-02-22 00:48:20 +03:00
|
|
|
time = "0.3.19"
|
2018-02-10 03:00:55 +03:00
|
|
|
|
2021-04-03 06:16:49 +03:00
|
|
|
# Job scheduler
|
2023-02-08 19:13:14 +03:00
|
|
|
job_scheduler_ng = "2.0.4"
|
2021-04-03 06:16:49 +03:00
|
|
|
|
2022-02-08 00:26:22 +03:00
|
|
|
# Data encoding library Hex/Base32/Base64
|
2022-12-10 19:51:05 +03:00
|
|
|
data-encoding = "2.3.3"
|
2018-02-10 03:00:55 +03:00
|
|
|
|
|
|
|
# JWT library
|
2022-12-10 19:51:05 +03:00
|
|
|
jsonwebtoken = "8.2.0"
|
2018-02-10 03:00:55 +03:00
|
|
|
|
2022-02-08 00:26:22 +03:00
|
|
|
# TOTP library
|
2022-05-20 21:37:32 +03:00
|
|
|
totp-lite = "2.0.0"
|
2018-07-12 22:46:50 +03:00
|
|
|
|
2018-11-16 04:34:17 +03:00
|
|
|
# Yubico Library
|
2022-05-11 23:03:07 +03:00
|
|
|
yubico = { version = "0.11.0", features = ["online-tokio"], default-features = false }
|
2018-11-16 04:34:17 +03:00
|
|
|
|
2022-03-27 18:25:04 +03:00
|
|
|
# WebAuthn libraries
|
2022-02-08 00:26:22 +03:00
|
|
|
webauthn-rs = "0.3.2"
|
2018-02-10 03:00:55 +03:00
|
|
|
|
2023-02-08 19:13:14 +03:00
|
|
|
# Handling of URL's for WebAuthn and favicons
|
2022-09-22 22:30:34 +03:00
|
|
|
url = "2.3.1"
|
2018-07-12 22:46:50 +03:00
|
|
|
|
2023-02-08 19:13:14 +03:00
|
|
|
# Email libraries
|
2023-02-22 00:48:20 +03:00
|
|
|
lettre = { version = "0.10.3", features = ["smtp-transport", "sendmail-transport", "builder", "serde", "tokio1-native-tls", "hostname", "tracing", "tokio1"], default-features = false }
|
2022-09-22 22:30:34 +03:00
|
|
|
percent-encoding = "2.2.0" # URL encoding library used for URL's in the emails
|
2022-11-04 14:56:02 +03:00
|
|
|
email_address = "0.2.4"
|
2018-08-15 09:32:19 +03:00
|
|
|
|
2023-02-08 19:13:14 +03:00
|
|
|
# HTML Template library
|
2023-01-09 18:49:26 +03:00
|
|
|
handlebars = { version = "4.3.6", features = ["dir_source"] }
|
2019-01-13 03:39:29 +03:00
|
|
|
|
2023-02-08 19:13:14 +03:00
|
|
|
# HTTP client (Used for favicons, version check, DUO and HIBP API)
|
2023-01-24 22:39:09 +03:00
|
|
|
reqwest = { version = "0.11.14", features = ["stream", "json", "gzip", "brotli", "socks", "cookies", "trust-dns"] }
|
2022-02-08 00:26:22 +03:00
|
|
|
|
2023-02-08 19:13:14 +03:00
|
|
|
# Favicon extraction libraries
|
2022-06-21 19:47:01 +03:00
|
|
|
html5gum = "0.5.2"
|
2023-01-09 18:49:26 +03:00
|
|
|
regex = { version = "1.7.1", features = ["std", "perf", "unicode-perl"], default-features = false }
|
2022-09-22 22:30:34 +03:00
|
|
|
data-url = "0.2.0"
|
2023-02-08 19:13:14 +03:00
|
|
|
bytes = "1.4.0"
|
|
|
|
|
|
|
|
# Cache function results (Used for version check and favicon fetching)
|
2023-01-09 18:49:26 +03:00
|
|
|
cached = "0.42.0"
|
2022-02-08 00:26:22 +03:00
|
|
|
|
|
|
|
# Used for custom short lived cookie jar during favicon extraction
|
2023-01-09 18:49:26 +03:00
|
|
|
cookie = "0.16.2"
|
2022-11-04 14:56:02 +03:00
|
|
|
cookie_store = "0.19.0"
|
2019-01-27 17:39:19 +03:00
|
|
|
|
2023-02-08 19:13:14 +03:00
|
|
|
# Used by U2F, JWT and PostgreSQL
|
2023-01-09 18:49:26 +03:00
|
|
|
openssl = "0.10.45"
|
2019-09-12 23:12:22 +03:00
|
|
|
|
2020-03-02 22:57:06 +03:00
|
|
|
# CLI argument parsing
|
2022-06-04 20:16:36 +03:00
|
|
|
pico-args = "0.5.0"
|
2020-03-02 22:57:06 +03:00
|
|
|
|
2020-08-18 18:15:44 +03:00
|
|
|
# Macro ident concatenation
|
2023-01-09 18:49:26 +03:00
|
|
|
paste = "1.0.11"
|
2022-12-01 19:18:29 +03:00
|
|
|
governor = "0.5.1"
|
2020-08-18 18:15:44 +03:00
|
|
|
|
2022-11-07 19:13:34 +03:00
|
|
|
# Check client versions for specific features.
|
2023-01-09 18:49:26 +03:00
|
|
|
semver = "1.0.16"
|
2022-11-07 19:13:34 +03:00
|
|
|
|
2022-03-20 20:51:24 +03:00
|
|
|
# Allow overriding the default memory allocator
|
|
|
|
# Mainly used for the musl builds, since the default musl malloc is very slow
|
2023-01-09 18:49:26 +03:00
|
|
|
mimalloc = { version = "0.1.34", features = ["secure"], default-features = false, optional = true }
|
2023-01-26 00:54:50 +03:00
|
|
|
which = "4.4.0"
|
2022-03-20 20:51:24 +03:00
|
|
|
|
2023-03-01 01:09:51 +03:00
|
|
|
# Argon2 library with support for the PHC format
|
|
|
|
argon2 = "0.5.0-pre.0"
|
|
|
|
|
|
|
|
# Reading a password from the cli for generating the Argon2id ADMIN_TOKEN
|
|
|
|
rpassword = "7.2"
|
|
|
|
|
2022-02-22 22:48:00 +03:00
|
|
|
# Strip debuginfo from the release builds
|
|
|
|
# Also enable thin LTO for some optimizations
|
|
|
|
[profile.release]
|
|
|
|
strip = "debuginfo"
|
|
|
|
lto = "thin"
|
2023-03-01 01:09:51 +03:00
|
|
|
|
|
|
|
# Always build argon2 using opt-level 3
|
|
|
|
# This is a huge speed improvement during testing
|
|
|
|
[profile.dev.package.argon2]
|
|
|
|
opt-level = 3
|