aboutsummaryrefslogtreecommitdiff
path: root/Cargo.toml
blob: 5f8e16b070434a8a0755db6454637edf3259cd50 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
[package]
name = "vaultwarden"
version = "1.0.0"
authors = ["Daniel GarcĂ­a <dani-garcia@users.noreply.github.com>"]
edition = "2021"
rust-version = "1.57"
resolver = "2"

repository = "https://github.com/dani-garcia/vaultwarden"
readme = "README.md"
license = "GPL-3.0-only"
publish = false
build = "build.rs"

[features]
# 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]
syslog = "4.0.1"

[dependencies]
# Web framework for nightly with a focus on ease-of-use, expressibility, and speed.
rocket = { version = "=0.5.0-dev", features = ["tls"], default-features = false }
rocket_contrib = "=0.5.0-dev"

# HTTP client
reqwest = { version = "0.11.7", features = ["blocking", "json", "gzip", "brotli", "socks", "cookies", "trust-dns"] }

# Used for custom short lived cookie jar
cookie = "0.15.1"
cookie_store = "0.15.1"
bytes = "1.1.0"
url = "2.2.2"

# multipart/form-data support
multipart = { version = "0.18.0", features = ["server"], default-features = false }

# WebSockets library
ws = { version = "0.11.1", package = "parity-ws" }

# MessagePack library
rmpv = "1.0.0"

# Concurrent hashmap implementation
chashmap = "2.2.2"

# A generic serialization/deserialization framework
serde = { version = "1.0.130", features = ["derive"] }
serde_json = "1.0.72"

# Logging
log = "0.4.14"
fern = { version = "0.6.0", features = ["syslog-4"] }

# 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.4"
ring = "0.16.20"

# UUID generation
uuid = { version = "0.8.2", features = ["v4"] }

# Date and time libraries
chrono = { version = "0.4.19", features = ["serde"] }
chrono-tz = "0.6.0"
time = "0.2.27"

# Job scheduler
job_scheduler = "1.2.1"

# TOTP library
totp-lite = "1.0.3"

# Data encoding library
data-encoding = "2.3.2"

# JWT library
jsonwebtoken = "7.2.0"

# U2F library
u2f = "0.2.0"
webauthn-rs = "0.3.0"

# Yubico Library
yubico = { version = "0.10.0", features = ["online-tokio"], default-features = false }

# A `dotenv` implementation for Rust
dotenv = { version = "0.15.0", default-features = false }

# Lazy initialization
once_cell = "1.8.0"

# Numerical libraries
num-traits = "0.2.14"
num-derive = "0.3.3"

# Email libraries
tracing = { version = "0.1.29", features = ["log"] } # Needed to have lettre trace logging used when SMTP_DEBUG is enabled.
lettre = { version = "0.10.0-rc.4", features = ["smtp-transport", "builder", "serde", "native-tls", "hostname", "tracing"], default-features = false }

# Template library
handlebars = { version = "4.1.5", features = ["dir_source"] }

# 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"

# Used by U2F, JWT and Postgres
openssl = "0.10.38"

# URL encoding library
percent-encoding = "2.1.0"
# Punycode conversion
idna = "0.2.3"

# CLI argument parsing
pico-args = "0.4.2"

# Logging panics to logfile instead stderr only
backtrace = "0.3.63"

# Macro ident concatenation
paste = "1.0.6"
governor = "0.3.2"

[patch.crates-io]
# Use newest ring
rocket = { git = 'https://github.com/SergioBenitez/Rocket', rev = '263e39b5b429de1913ce7e3036575a7b4d88b6d7' }
rocket_contrib = { git = 'https://github.com/SergioBenitez/Rocket', rev = '263e39b5b429de1913ce7e3036575a7b4d88b6d7' }

# 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' }