arti/crates/tor-circmgr/Cargo.toml

68 lines
2.3 KiB
TOML
Raw Normal View History

[package]
name = "tor-circmgr"
2022-03-01 13:59:34 +00:00
version = "0.1.0"
2021-03-17 18:43:40 +00:00
authors = ["The Tor Project, Inc.", "Nick Mathewson <nickm@torproject.org>"]
edition = "2018"
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 = "Manage a set of anonymous circuits over the Tor network"
2022-03-25 19:12:17 +00:00
keywords = ["tor", "arti", "async"]
categories = ["network-programming", "cryptography"]
repository = "https://gitlab.torproject.org/tpo/core/arti.git/"
[features]
# Enable experimental APIs that are not yet officially supported.
#
# These APIs are not covered by semantic versioning. Using this
# feature voids your "semver warrantee".
experimental-api = []
[dependencies]
2022-03-25 19:12:17 +00:00
tor-basic-utils = { path = "../tor-basic-utils", version = "0.1.0" }
tor-chanmgr = { path = "../tor-chanmgr", version = "0.1.0" }
tor-config = { path = "../tor-config", version = "0.1.0" }
tor-error = { path = "../tor-error", version = "0.1.0" }
tor-guardmgr = { path = "../tor-guardmgr", version = "0.1.0" }
tor-netdir = { path = "../tor-netdir", version = "0.1.0" }
tor-netdoc = { path = "../tor-netdoc", version = "0.1.0" }
tor-proto = { path = "../tor-proto", version = "0.1.0" }
retry-error = { path = "../retry-error", version = "0.1.0" }
tor-linkspec = { path = "../tor-linkspec", version = "0.1.0" }
tor-persist = { path = "../tor-persist", version = "0.1.0" }
tor-rtcompat = { path = "../tor-rtcompat", version = "0.1.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
async-trait = "0.1.2"
bounded-vec-deque = "0.1"
derive_builder = "0.11"
downcast-rs = "1.2.0"
dyn-clone = "1.0.4"
educe = "0.4.6"
futures = "0.3.14"
humantime-serde = "1.1.1"
itertools = "0.10.1"
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
tracing = "0.1.18"
pin-project = "1"
rand = "0.8"
serde = { version = "1.0.103", features = ["derive"] }
static_assertions = "1"
thiserror = "1"
weak-table = "0.3.0"
[dev-dependencies]
futures-await-test = "0.3.0"
2022-03-25 19:12:17 +00:00
tor-rtmock = { path = "../tor-rtmock", version = "0.1.0" }
tor-guardmgr = { path = "../tor-guardmgr", version = "0.1.0", features = [
"testing",
] }
tor-llcrypto = { path = "../tor-llcrypto", version = "0.1.0" }
tor-netdir = { path = "../tor-netdir", version = "0.1.0", features = [
"testing",
] }
tor-persist = { path = "../tor-persist", version = "0.1.0", features = [
"testing",
] }
tor-rtcompat = { path = "../tor-rtcompat", version = "0.1.0", features = [
"tokio",
"native-tls",
] }