mirror of
				https://github.com/dani-garcia/vaultwarden.git
				synced 2025-11-04 04:08:20 +02:00 
			
		
		
		
	- Updated Rust to v1.77.0 - Updated several crates The `reqwest` update included `trust-dns` > `hickory-dns` changes. Also, `reqwest` v0.12 is not working correctly for us, that is something to investigate. - Fixed a new clippy warning
		
			
				
	
	
		
			249 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			TOML
		
	
	
	
	
	
			
		
		
	
	
			249 lines
		
	
	
		
			6.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.75.0"
 | 
						|
resolver = "2"
 | 
						|
 | 
						|
repository = "https://github.com/dani-garcia/vaultwarden"
 | 
						|
readme = "README.md"
 | 
						|
license = "AGPL-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"]
 | 
						|
# 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"]
 | 
						|
 | 
						|
# Enable unstable features, requires nightly
 | 
						|
# Currently only used to enable rusts official ip support
 | 
						|
unstable = []
 | 
						|
 | 
						|
[target."cfg(not(windows))".dependencies]
 | 
						|
# Logging
 | 
						|
syslog = "6.1.0"
 | 
						|
 | 
						|
[dependencies]
 | 
						|
# Logging
 | 
						|
log = "0.4.21"
 | 
						|
fern = { version = "0.6.2", features = ["syslog-6", "reopen-1"] }
 | 
						|
tracing = { version = "0.1.40", features = ["log"] } # Needed to have lettre and webauthn-rs trace logging to work
 | 
						|
 | 
						|
# A `dotenv` implementation for Rust
 | 
						|
dotenvy = { version = "0.15.7", default-features = false }
 | 
						|
 | 
						|
# Lazy initialization
 | 
						|
once_cell = "1.19.0"
 | 
						|
 | 
						|
# Numerical libraries
 | 
						|
num-traits = "0.2.18"
 | 
						|
num-derive = "0.4.2"
 | 
						|
bigdecimal = "0.4.3"
 | 
						|
 | 
						|
# Web framework
 | 
						|
rocket = { version = "0.5.0", features = ["tls", "json"], default-features = false }
 | 
						|
rocket_ws = { version ="0.1.0" }
 | 
						|
 | 
						|
# WebSockets libraries
 | 
						|
rmpv = "1.0.1" # MessagePack library
 | 
						|
 | 
						|
# Concurrent HashMap used for WebSocket messaging and favicons
 | 
						|
dashmap = "5.5.3"
 | 
						|
 | 
						|
# Async futures
 | 
						|
futures = "0.3.30"
 | 
						|
tokio = { version = "1.36.0", features = ["rt-multi-thread", "fs", "io-util", "parking_lot", "time", "signal"] }
 | 
						|
 | 
						|
# A generic serialization/deserialization framework
 | 
						|
serde = { version = "1.0.197", features = ["derive"] }
 | 
						|
serde_json = "1.0.114"
 | 
						|
 | 
						|
# A safe, extensible ORM and Query builder
 | 
						|
diesel = { version = "2.1.5", features = ["chrono", "r2d2", "numeric"] }
 | 
						|
diesel_migrations = "2.1.0"
 | 
						|
diesel_logger = { version = "0.3.0", optional = true }
 | 
						|
 | 
						|
# Bundled/Static SQLite
 | 
						|
libsqlite3-sys = { version = "0.28.0", features = ["bundled"], optional = true }
 | 
						|
 | 
						|
# Crypto-related libraries
 | 
						|
rand = { version = "0.8.5", features = ["small_rng"] }
 | 
						|
ring = "0.17.8"
 | 
						|
 | 
						|
# UUID generation
 | 
						|
uuid = { version = "1.8.0", features = ["v4"] }
 | 
						|
 | 
						|
# Date and time libraries
 | 
						|
chrono = { version = "0.4.35", features = ["clock", "serde"], default-features = false }
 | 
						|
chrono-tz = "0.8.6"
 | 
						|
time = "0.3.34"
 | 
						|
 | 
						|
# Job scheduler
 | 
						|
job_scheduler_ng = "2.0.4"
 | 
						|
 | 
						|
# Data encoding library Hex/Base32/Base64
 | 
						|
data-encoding = "2.5.0"
 | 
						|
 | 
						|
# JWT library
 | 
						|
jsonwebtoken = "9.3.0"
 | 
						|
 | 
						|
# TOTP library
 | 
						|
totp-lite = "2.0.1"
 | 
						|
 | 
						|
# Yubico Library
 | 
						|
yubico = { version = "0.11.0", features = ["online-tokio"], default-features = false }
 | 
						|
 | 
						|
# WebAuthn libraries
 | 
						|
webauthn-rs = "0.3.2"
 | 
						|
 | 
						|
# Handling of URL's for WebAuthn and favicons
 | 
						|
url = "2.5.0"
 | 
						|
 | 
						|
# Email libraries
 | 
						|
lettre = { version = "0.11.4", features = ["smtp-transport", "sendmail-transport", "builder", "serde", "tokio1-native-tls", "hostname", "tracing", "tokio1"], default-features = false }
 | 
						|
percent-encoding = "2.3.1" # URL encoding library used for URL's in the emails
 | 
						|
email_address = "0.2.4"
 | 
						|
 | 
						|
# HTML Template library
 | 
						|
handlebars = { version = "5.1.0", features = ["dir_source"] }
 | 
						|
 | 
						|
# HTTP client (Used for favicons, version check, DUO and HIBP API)
 | 
						|
reqwest = { version = "0.11.27", features = ["default-tls", "native-tls-alpn", "stream", "json", "gzip", "brotli", "socks", "cookies", "hickory-dns"], default-features = false}
 | 
						|
 | 
						|
# Favicon extraction libraries
 | 
						|
html5gum = "0.5.7"
 | 
						|
regex = { version = "1.10.3", features = ["std", "perf", "unicode-perl"], default-features = false }
 | 
						|
data-url = "0.3.1"
 | 
						|
bytes = "1.5.0"
 | 
						|
 | 
						|
# Cache function results (Used for version check and favicon fetching)
 | 
						|
cached = { version = "0.49.2", features = ["async"] }
 | 
						|
 | 
						|
# Used for custom short lived cookie jar during favicon extraction
 | 
						|
cookie = "0.18.0"
 | 
						|
cookie_store = "0.21.0"
 | 
						|
 | 
						|
# Used by U2F, JWT and PostgreSQL
 | 
						|
openssl = "0.10.64"
 | 
						|
 | 
						|
# CLI argument parsing
 | 
						|
pico-args = "0.5.0"
 | 
						|
 | 
						|
# Macro ident concatenation
 | 
						|
paste = "1.0.14"
 | 
						|
governor = "0.6.3"
 | 
						|
 | 
						|
# Check client versions for specific features.
 | 
						|
semver = "1.0.22"
 | 
						|
 | 
						|
# Allow overriding the default memory allocator
 | 
						|
# Mainly used for the musl builds, since the default musl malloc is very slow
 | 
						|
mimalloc = { version = "0.1.39", features = ["secure"], default-features = false, optional = true }
 | 
						|
which = "6.0.0"
 | 
						|
 | 
						|
# Argon2 library with support for the PHC format
 | 
						|
argon2 = "0.5.3"
 | 
						|
 | 
						|
# Reading a password from the cli for generating the Argon2id ADMIN_TOKEN
 | 
						|
rpassword = "7.3.1"
 | 
						|
 | 
						|
 | 
						|
# Strip debuginfo from the release builds
 | 
						|
# The symbols are the provide better panic traces
 | 
						|
# Also enable fat LTO and use 1 codegen unit for optimizations
 | 
						|
[profile.release]
 | 
						|
strip = "debuginfo"
 | 
						|
lto = "fat"
 | 
						|
codegen-units = 1
 | 
						|
 | 
						|
 | 
						|
# A little bit of a speedup
 | 
						|
[profile.dev]
 | 
						|
split-debuginfo = "unpacked"
 | 
						|
 | 
						|
# Always build argon2 using opt-level 3
 | 
						|
# This is a huge speed improvement during testing
 | 
						|
[profile.dev.package.argon2]
 | 
						|
opt-level = 3
 | 
						|
 | 
						|
# Optimize for size
 | 
						|
[profile.release-micro]
 | 
						|
inherits = "release"
 | 
						|
opt-level = "z"
 | 
						|
strip = "symbols"
 | 
						|
lto = "fat"
 | 
						|
codegen-units = 1
 | 
						|
panic = "abort"
 | 
						|
 | 
						|
# Profile for systems with low resources
 | 
						|
# It will use less resources during build
 | 
						|
[profile.release-low]
 | 
						|
inherits = "release"
 | 
						|
strip = "symbols"
 | 
						|
lto = "thin"
 | 
						|
codegen-units = 16
 | 
						|
 | 
						|
# Linting config
 | 
						|
[lints.rust]
 | 
						|
# Forbid
 | 
						|
unsafe_code = "forbid"
 | 
						|
non_ascii_idents = "forbid"
 | 
						|
 | 
						|
# Deny
 | 
						|
future_incompatible = "deny"
 | 
						|
noop_method_call = "deny"
 | 
						|
pointer_structural_match = "deny"
 | 
						|
rust_2018_idioms = "deny"
 | 
						|
rust_2021_compatibility = "deny"
 | 
						|
trivial_casts = "deny"
 | 
						|
trivial_numeric_casts = "deny"
 | 
						|
unused = "deny"
 | 
						|
unused_import_braces = "deny"
 | 
						|
unused_lifetimes = "deny"
 | 
						|
deprecated_in_future = "deny"
 | 
						|
 | 
						|
[lints.clippy]
 | 
						|
# Allow
 | 
						|
# We need this since Rust v1.76+, since it has some bugs
 | 
						|
# https://github.com/rust-lang/rust-clippy/issues/12016
 | 
						|
blocks_in_conditions = "allow"
 | 
						|
 | 
						|
# Deny
 | 
						|
cast_lossless = "deny"
 | 
						|
clone_on_ref_ptr = "deny"
 | 
						|
equatable_if_let = "deny"
 | 
						|
float_cmp_const = "deny"
 | 
						|
inefficient_to_string = "deny"
 | 
						|
iter_on_empty_collections = "deny"
 | 
						|
iter_on_single_items = "deny"
 | 
						|
linkedlist = "deny"
 | 
						|
macro_use_imports = "deny"
 | 
						|
manual_assert = "deny"
 | 
						|
manual_instant_elapsed = "deny"
 | 
						|
manual_string_new = "deny"
 | 
						|
match_wildcard_for_single_variants = "deny"
 | 
						|
mem_forget = "deny"
 | 
						|
needless_lifetimes = "deny"
 | 
						|
string_add_assign = "deny"
 | 
						|
string_to_string = "deny"
 | 
						|
unnecessary_join = "deny"
 | 
						|
unnecessary_self_imports = "deny"
 | 
						|
unused_async = "deny"
 | 
						|
verbose_file_reads = "deny"
 | 
						|
zero_sized_map_values = "deny"
 |