arti/crates/tor-consdiff/Cargo.toml

26 lines
765 B
TOML
Raw Normal View History

[package]
name = "tor-consdiff"
version = "0.3.2"
2021-03-17 18:43:40 +00:00
authors = ["The Tor Project, Inc.", "Nick Mathewson <nickm@torproject.org>"]
edition = "2021"
rust-version = "1.56"
license = "MIT OR Apache-2.0"
2021-03-17 18:13:26 +00:00
homepage = "https://gitlab.torproject.org/tpo/core/arti/-/wikis/home"
description = "Handle the consensus-diff format used in the Tor directory protocol"
keywords = ["tor", "arti", "diff"]
categories = ["parser-implementations", "network-programming"]
repository = "https://gitlab.torproject.org/tpo/core/arti.git/"
[features]
default = []
slow-diff-apply = []
[dependencies]
digest = "0.10.0"
Minimize the required version for each dependency. I found these versions empirically, by using the following process: First, I used `cargo tree --depth 1 --kind all` to get a list of every immediate dependency we had. Then, I used `cargo upgrade --workspace package@version` to change each dependency to the earliest version with which (in theory) the current version is semver-compatible. IOW, if the current version was 3.2.3, I picked "3". If the current version was 0.12.8, I picked "0.12". Then, I used `cargo +nightly upgrade -Z minimal-versions` to downgrade Cargo.lock to the minimal listed version for each dependency. (I had to override a few packages; see .gitlab-ci.yml for details). Finally, I repeatedly increased the version of each of our dependencies until our code compiled and the tests passed. Here's what I found that we need: anyhow >= 1.0.5: Earlier versions break our hyper example. async-broadcast >= 0.3.2: Earlier versions fail our tests. async-compression 0.3.5: Earlier versions handled futures and tokio differently. async-trait >= 0.1.2: Earlier versions are too buggy to compile our code. clap 2.33.0: For Arg::default_value_os(). coarsetime >= 0.1.20: exposed as_ticks() function. curve25519-dalek >= 3.2: For is_identity(). generic-array 0.14.3: Earlier versions don't implement From<&[T; 32]> httparse >= 1.2: Earlier versions didn't implement Error. itertools at 0.10.1: For at_most_once. rusqlite >= 0.26.3: for backward compatibility with older rustc. serde 1.0.103: Older versions break our code. serde_json >= 1.0.50: Since we need its Value type to implement Eq. shellexpand >= 2.1: To avoid a broken dirs crate version. tokio >= 1.4: For Handle::block_on(). tracing >= 0.1.18: Previously, tracing_core and tracing had separate LevelFilter types. typenum >= 1.12: Compatibility with rust-crypto crates x25519-dalek >= 1.2.0: For was_contributory(). Closes #275.
2022-01-07 20:54:24 +00:00
hex = "0.4"
thiserror = "1"
tor-llcrypto = { path = "../tor-llcrypto", version = "0.3.4" }
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]