aboutsummaryrefslogtreecommitdiff
path: root/crates/arti-client/Cargo.toml
Commit message (Collapse)AuthorAgeFilesLines
* Bump all crates to 0.1.0arti-v0.1.0Nick Mathewson2022-03-011-10/+10
|
* Split "static" into sqlite and native-tls features.Nick Mathewson2022-02-251-1/+3
| | | | | | | Otherwise, it's impossible to get a static sqlite linkage without also getting native-tls, even if you wanted rustls. Closes #302.
* Bump minimum tokio to 1.7, since tokio-util now needs that.Nick Mathewson2022-02-251-1/+1
|
* Upgrade dependency to new version of tokio-util.Nick Mathewson2022-02-251-1/+1
|
* arti-hyper: Move hyper example from arti-clientIan Jackson2022-02-231-1/+0
| | | | Code motion and consequential dependency adjustments.
* Bump anyhow minimal version to 1.0.23Ian Jackson2022-02-181-1/+1
| | | | | | | | | | | | | This is the first one where anyhow::Error impl AsRef<dyn StdError> We want this because we want to add error reporting functionality which works with all kinds of errors, which means we need an anyhow::Error which can be vieweed as a StdError. (The alternative would be to deref at the call sites of report_and_exit, making it less ergonomic.) anyhow 1.0.23 is from November 2019.
* arti-client: add ability to automatically bootstrapeta2022-02-161-0/+1
| | | | | | | | | | | | | The new `BootstrapBehavior` enum controls whether an unbootstrapped `TorClient` will bootstrap itself automatically (`Ondemand`) when an attempt is made to use it, or whether the user must perform bootstrapping themselves (`Manual`). The `lazy-init` example shows how you could write a simple `get_tor_client()` function that used a global `OnceCell` to share a Tor client across an entire application with this API. closes arti#278
* Simplify wait_for_bootstrap to use a Mutex.Nick Mathewson2022-02-141-1/+0
| | | | | | | | Since the only purpose of this function is to make sure that no bootstrapping task is running, a simple futures::lock::Mutex should do the job just fine. Closes #337.
* Allow creating unbootstrapped `TorClient`s (and `DirMgr`s)eta2022-02-111-0/+2
| | | | | | | | | | | | | | | This commit changes how the `TorClient` type works, enabling it to be constructed synchronously without initiating the bootstrapping process. Daemon tasks are still started on construction (although some of them won't do anything if the client isn't bootstrapped). The old bootstrap() methods are now reimplemented in terms of the new create_unbootstrapped() and bootstrap_existing() methods. This required refactoring how the `DirMgr` works to enable the same sort of thing there. closes #293
* errors: Introduce error_detail featureIan Jackson2022-02-041-0/+1
| | | | | Right now we must always expose the `Error` type since we haven't converted everything.
* tor-error: Add as a ddpendency to many cratesIan Jackson2022-02-041-0/+1
| | | | Doing this here makes it easier when I rebase/reorder things
* Upgrade required version of futures crate to 0.3.14Nick Mathewson2022-02-011-1/+1
| | | | | Earlier versions have a bug in UnboundedReceiver that make our new dirclient tests fail.
* Bump the patch version of every crate that changed since 0.0.3Nick Mathewson2022-01-311-8/+8
|
* Make the native-tls crate optional.Nick Mathewson2022-01-261-2/+4
| | | | | | | | | | | This commit puts the native-tls crate behind a feature. The feature is off-by-default in the tor-rtcompat crate, but can be enabled either from arti or arti-client. There is an included script that I used to test that tor-rtcompat could build and run its tests with all subsets of its features. Closes #300
* Implement the basics of a bootstrap-status API.Nick Mathewson2022-01-131-0/+2
| | | | | | | | | | | | The purpose of a this API is to tell the user how far along Arti is in getting bootstrapped, and if it's stuck, what it's stuck on. This API doesn't yet expose any useful information: by the time it's observable to a client, it's always "100% bootstrapped." But I'm putting it in a MR now so that we can review the basic idea, and to avoid conflicts with later work on tickets like #293 and #278. This is part of #96.
* Bump all crate versions to 0.0.3.Nick Mathewson2022-01-111-9/+9
|
* Minimize the required version for each dependency.Nick Mathewson2022-01-071-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Make DNS fields in arti-client/src/client.rs configurableNeel Chauhan2021-12-031-0/+1
|
* Bump every crate by one patch version.Nick Mathewson2021-11-291-9/+9
|
* Move top-level configuration downwards from `arti` to `arti-config`.Nick Mathewson2021-11-181-0/+1
| | | | | | | | To do this at all neatly, I had to split out `tor-config` from `arti-config` again, and putting the lower level stuff (paths, builder errors) into tor-config. I also changed our use of derive_builder to always use a common error type, to avoid error type proliferation.
* Remove dependency from arti-client to tor-config.Nick Mathewson2021-11-161-1/+1
| | | | | I'm about to make tor-config a higher-level module, so it can't be a dependency for tor-config.
* Document that the "experimental-api" feature is not semver-covered.Nick Mathewson2021-11-111-0/+5
|
* Bump all crate versions to 0.0.1Nick Mathewson2021-10-291-9/+9
|
* Upgrade to latest tracing-{subscriber,journald}Nick Mathewson2021-10-231-1/+1
|
* Rename tor_client/arti_tor_client to arti_client.Nick Mathewson2021-10-211-0/+42
Solves a name conflict with the existing tor_client create. Closes #130.