mirror of
https://github.com/dani-garcia/vaultwarden
synced 2024-11-15 22:42:51 +01:00
b0faaf2527
- Removed all `thread::sleep` and use `tokio::time::sleep` now. This solves an issue with updating to Bullseye ( Resolves #1998 ) - Updated all Debian images to Bullseye - Added MiMalloc feature and enabled it by default for Alpine based images This increases performance for the Alpine images because the default memory allocator for MUSL based binaries isn't that fast - Updated `dotenv` to `dotenvy` a maintained and updated fork - Fixed an issue with a newer jslib (not fully released yet) That version uses a different endpoint for `prelogin` Resolves #2378 )
163 lines
4.9 KiB
TOML
163 lines
4.9 KiB
TOML
[package]
|
|
name = "vaultwarden"
|
|
version = "1.0.0"
|
|
authors = ["Daniel García <dani-garcia@users.noreply.github.com>"]
|
|
edition = "2021"
|
|
rust-version = "1.59"
|
|
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 = "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.32", 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
|
|
dotenvy = { version = "0.15.1", default-features = false }
|
|
|
|
# Lazy initialization
|
|
once_cell = "1.10.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 = "8.0.1"
|
|
|
|
# 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.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.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"] }
|
|
|
|
# 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 }
|
|
|
|
[patch.crates-io]
|
|
rocket = { git = 'https://github.com/SergioBenitez/Rocket', rev = 'ae0ccf43f11be5c00bb9cd49996c8bb06a7e1651' }
|
|
|
|
# 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' }
|
|
|
|
# Strip debuginfo from the release builds
|
|
# Also enable thin LTO for some optimizations
|
|
[profile.release]
|
|
strip = "debuginfo"
|
|
lto = "thin"
|