mirror of
https://github.com/chatmail/core.git
synced 2026-04-17 21:46:35 +03:00
Add a new crate `deltachat_time` with a fake `struct SystemTimeTools` for mocking `SystemTime::now()` for test purposes. One still needs to use `std::time::SystemTime` as a struct representing a system time. I think such a minimalistic approach is ok -- even if somebody uses the original `SystemTime::now()` instead of the mock by mistake, that could break only tests but not the program itself. The worst thing that can happen is that tests using `SystemTime::shift()` and checking messages timestamps f.e. wouldn't catch the corresponding bugs, but now we don't have such tests at all which is much worse.
172 lines
4.6 KiB
TOML
172 lines
4.6 KiB
TOML
[package]
|
|
name = "deltachat"
|
|
version = "1.135.0"
|
|
edition = "2021"
|
|
license = "MPL-2.0"
|
|
rust-version = "1.70"
|
|
|
|
[profile.dev]
|
|
debug = 0
|
|
panic = 'abort'
|
|
opt-level = 1
|
|
|
|
[profile.test]
|
|
# Make anyhow `backtrace` feature useful.
|
|
# With `debug = 0` there are no line numbers in the backtrace
|
|
# produced with RUST_BACKTRACE=1.
|
|
debug = 1
|
|
opt-level = 0
|
|
|
|
# Always optimize dependencies.
|
|
# This does not apply to crates in the workspace.
|
|
# <https://doc.rust-lang.org/cargo/reference/profiles.html#overrides>
|
|
[profile.dev.package."*"]
|
|
opt-level = "z"
|
|
|
|
[profile.release]
|
|
lto = true
|
|
panic = 'abort'
|
|
opt-level = "z"
|
|
codegen-units = 1
|
|
strip = true
|
|
|
|
[dependencies]
|
|
deltachat_derive = { path = "./deltachat_derive" }
|
|
deltachat-time = { path = "./deltachat-time" }
|
|
format-flowed = { path = "./format-flowed" }
|
|
ratelimit = { path = "./deltachat-ratelimit" }
|
|
|
|
anyhow = "1"
|
|
async-channel = "2.0.0"
|
|
async-imap = { version = "0.9.7", default-features = false, features = ["runtime-tokio"] }
|
|
async-native-tls = { version = "0.5", default-features = false, features = ["runtime-tokio"] }
|
|
async-smtp = { version = "0.9", default-features = false, features = ["runtime-tokio"] }
|
|
async_zip = { version = "0.0.12", default-features = false, features = ["deflate", "fs"] }
|
|
backtrace = "0.3"
|
|
base64 = "0.21"
|
|
brotli = { version = "3.4", default-features=false, features = ["std"] }
|
|
chrono = { version = "0.4", default-features=false, features = ["clock", "std"] }
|
|
email = { git = "https://github.com/deltachat/rust-email", branch = "master" }
|
|
encoded-words = { git = "https://github.com/async-email/encoded-words", branch = "master" }
|
|
escaper = "0.1"
|
|
fast-socks5 = "0.9"
|
|
fd-lock = "4"
|
|
futures = "0.3"
|
|
futures-lite = "2.2.0"
|
|
hex = "0.4.0"
|
|
hickory-resolver = "0.24"
|
|
humansize = "2"
|
|
image = { version = "0.24.8", default-features=false, features = ["gif", "jpeg", "ico", "png", "pnm", "webp", "bmp"] }
|
|
iroh = { version = "0.4.2", default-features = false }
|
|
kamadak-exif = "0.5"
|
|
lettre_email = { git = "https://github.com/deltachat/lettre", branch = "master" }
|
|
libc = "0.2"
|
|
mailparse = "0.14"
|
|
mime = "0.3.17"
|
|
num_cpus = "1.16"
|
|
num-derive = "0.4"
|
|
num-traits = "0.2"
|
|
once_cell = "1.18.0"
|
|
percent-encoding = "2.3"
|
|
parking_lot = "0.12"
|
|
pgp = { version = "0.10", default-features = false }
|
|
pin-project = "1"
|
|
pretty_env_logger = { version = "0.5", optional = true }
|
|
qrcodegen = "1.7.0"
|
|
quick-xml = "0.31"
|
|
quoted_printable = "0.5"
|
|
rand = "0.8"
|
|
regex = "1.10"
|
|
reqwest = { version = "0.11.24", features = ["json"] }
|
|
rusqlite = { version = "0.30", features = ["sqlcipher"] }
|
|
rust-hsluv = "0.1"
|
|
sanitize-filename = "0.5"
|
|
serde_json = "1"
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
sha-1 = "0.10"
|
|
sha2 = "0.10"
|
|
smallvec = "1"
|
|
strum = "0.26"
|
|
strum_macros = "0.26"
|
|
tagger = "4.3.4"
|
|
textwrap = "0.16.0"
|
|
thiserror = "1"
|
|
tokio = { version = "1", features = ["fs", "rt-multi-thread", "macros"] }
|
|
tokio-io-timeout = "1.2.0"
|
|
tokio-stream = { version = "0.1.14", features = ["fs"] }
|
|
tokio-tar = { version = "0.3" } # TODO: integrate tokio into async-tar
|
|
tokio-util = "0.7.9"
|
|
toml = "0.8"
|
|
url = "2"
|
|
uuid = { version = "1", features = ["serde", "v4"] }
|
|
|
|
# Pin OpenSSL to 3.1 releases.
|
|
# OpenSSL 3.2 has a regression tracked at <https://github.com/openssl/openssl/issues/23376>
|
|
# which results in broken `deltachat-rpc-server` binaries when cross-compiled using Zig toolchain.
|
|
# See <https://github.com/deltachat/deltachat-core-rust/issues/5206> for Delta Chat issue.
|
|
# According to <https://www.openssl.org/policies/releasestrat.html>
|
|
# 3.1 branch will be supported until 2025-03-14.
|
|
openssl-src = "~300.1"
|
|
|
|
[dev-dependencies]
|
|
ansi_term = "0.12.0"
|
|
anyhow = { version = "1", features = ["backtrace"] } # Enable `backtrace` feature in tests.
|
|
criterion = { version = "0.5.1", features = ["async_tokio"] }
|
|
futures-lite = "2.2.0"
|
|
log = "0.4"
|
|
pretty_env_logger = "0.5"
|
|
proptest = { version = "1", default-features = false, features = ["std"] }
|
|
tempfile = "3"
|
|
testdir = "0.9.0"
|
|
tokio = { version = "1", features = ["parking_lot", "rt-multi-thread", "macros"] }
|
|
pretty_assertions = "1.3.0"
|
|
|
|
[workspace]
|
|
members = [
|
|
"deltachat-ffi",
|
|
"deltachat_derive",
|
|
"deltachat-jsonrpc",
|
|
"deltachat-rpc-server",
|
|
"deltachat-ratelimit",
|
|
"deltachat-repl",
|
|
"deltachat-time",
|
|
"format-flowed",
|
|
]
|
|
|
|
[[bench]]
|
|
name = "create_account"
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "contacts"
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "search_msgs"
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "receive_emails"
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "get_chat_msgs"
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "get_chatlist"
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "send_events"
|
|
harness = false
|
|
|
|
[features]
|
|
default = ["vendored"]
|
|
internals = []
|
|
vendored = [
|
|
"async-native-tls/vendored",
|
|
"rusqlite/bundled-sqlcipher-vendored-openssl",
|
|
"reqwest/native-tls-vendored"
|
|
]
|