aboutsummaryrefslogtreecommitdiff
path: root/crates/arti/Cargo.toml
Commit message (Collapse)AuthorAgeFilesLines
...
| * derive_builder: Use git dep everywhere, rather than cargo patchIan Jackson2022-04-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `[patch]` approach causes the tree not to build when used as a dependency, unless the `[patch]` is replicated into the depending project. Instead, replace our `derive_builer =` dependencies with a reference to a specific git commit: perl -i~ -pe 'next unless m/^derive_builder/; s#"(0\.11\.2)"#{ version = "$1", git = "https://github.com/ijackson/rust-derive-builder", rev = "ba0c1a5311bd9f93ddf5f5b8ec2a5f6f03b22fbe" }#' crates/*/Cargo.toml Note that the commitid has changed. This is because derive_builder is in fact a workspace of 4 crates. 3 of them are of interest to arti itself (the 4th exists only for testing). So the same "add git revision" treatment had to be done to the `derive_builder` and `derive_builder_macro` crates. Each dependency edge involves a new commit in the derive_builder workspace, since we can't create a git commit containing its own commitid. (We want to use commits, rather than a branch, so that what we are depending on is actually properly defined, and not subject to the whims of my personal github namespace.) There are no actual code changes in derive_builder.
* | Bump to config 0.13Nick Mathewson2022-04-261-1/+1
| |
* | Upgrade tracing-journald to 0.3.0Nick Mathewson2022-04-261-1/+1
| |
* | Upgrade to rlimit 0.8.3, again.Nick Mathewson2022-04-261-1/+1
|/ | | | | | | Now that our MSRV is at 1.56, we can use the latest rlimit. It has to be 0.8.3 (not "0.8"), since 0.8.2 has compatibility issues with 1.56.
* Bump every crate's edition to 2021.Nick Mathewson2022-04-251-1/+1
| | | | | | | | | | This is an automated change made with a perl one-liner and verified with grep -L and grep -l. Some warnings are introduced with this change; they will be removed in subsequent commits. See arti#208 for older discussion on this issue.
* Add 'rust-version = "1.56"' to every Cargo.toml file.Nick Mathewson2022-04-251-0/+1
| | | | | | | This change was made automatically with a perl one-liner, and confirmed with `grep -L`. The `rust-version` field itself was introduced in 1.56.0.
* Reformat all not-yet-reformatted Cargo.toml files.Nick Mathewson2022-04-251-19/+19
| | | | | There are no semantic changes here; only formatting. This is in preparation for other changes (wrt MSRV and edition)
* Downgrade `rlimit` to 0.7.Nick Mathewson2022-04-061-1/+1
| | | | | | | | | | Upstream 0.8.2 has broken compilation with Rust 1.53; versions 0.8.{0,1} have been yanked. Possibly by the time the next arti version comes out, they'll have fixed this situation, or we'll have upgraded our MSRV. Upstream issue at https://github.com/Nugine/rlimit/issues/42 .
* Bump all arti*, tor* crates to 0.2.0Nick Mathewson2022-04-011-7/+7
| | | | | | | | Not all of these strictly need to be bumped to 0.2.0; many could go to 0.1.1 instead. But since everything at the tor-rtcompat and higher layers has had breaking API changes, it seems not so useful to distinguish. (It seems unlikely that anybody at this stage is depending on e.g. tor-protover but not arti-client.)
* Upgrade rlimit -> 0.8.0Nick Mathewson2022-04-011-1/+1
|
* Move logging configuration from arti_config::options to arti::loggingIan Jackson2022-03-211-0/+1
| | | | Code motion and import fixups.
* Move ArtiConfig to new arti::cfg moduleIan Jackson2022-03-211-0/+1
| | | | Code motion and import fixups.
* actually add DNS supporttrinity-1686a2022-03-141-0/+1
|
* Bump all crates to 0.1.0arti-v0.1.0Nick Mathewson2022-03-011-6/+6
|
* 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 to newer version of config crate.Nick Mathewson2022-02-251-1/+1
|
* Upgrade dependency to new version of rlimit.Nick Mathewson2022-02-251-1/+1
|
* 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.
* Provide error reporter and use it in the arti binaryIan Jackson2022-02-181-0/+1
|
* Merge branch 'ticket270' into 'main'Nick Mathewson2022-02-031-0/+1
|\ | | | | | | | | | | | | Watch configuration files and reload them when they change Closes #270 See merge request tpo/core/arti!280
| * Reload configuration when our configuration files change.Nick Mathewson2022-02-011-0/+1
| | | | | | | | Closes #270
* | 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-4/+4
|
* arti: be more careful to use the user-selected runtimeNick Mathewson2022-01-261-1/+2
|
* Make the native-tls crate optional.Nick Mathewson2022-01-261-1/+3
| | | | | | | | | | | 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
* Bump all crate versions to 0.0.3.Nick Mathewson2022-01-111-5/+5
|
* Tracing configuration for logfiles, per-target filtersNick Mathewson2022-01-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we could only configure one global tracing filter that applied to stdout and journald. There was no support for log files, either. This patch fixes both issues, by substantially revising the configuration format: There are now separate filters for each log file, for journald, and for the console log. Because we want to allow multiple logfiles, they have to go into an array in the configuration. The configuration logic has grown a bit complicated in its types, since the tracing_subscriber crate would prefer to have the complete structure of tracing Layers known statically. That's fine when you know how many you have, and which kinds there will be, but for the runtime-configuration case we need to mess around with `Box<dyn Layer ...>`. I also had to switch from tracing_subscriber's EnvFilter to its Targets filter. It seems "EnvFilter" can only be applied as a Layer in itself, and won't work as a Filter on an individual Layer. Closes #166. Closes #170.
* Minimize the required version for each dependency.Nick Mathewson2022-01-071-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Bump every crate by one patch version.Nick Mathewson2021-11-291-5/+5
|
* Move top-level configuration downwards from `arti` to `arti-config`.Nick Mathewson2021-11-181-1/+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.
* Bump all crate versions to 0.0.1Nick Mathewson2021-10-291-5/+5
|
* Improve and future-proof the `arti` CLIeta2021-10-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | This switches out `arti`'s argument-parsing library with `clap`, which is a lot more featureful (and very widely used within the Rust ecosystem). We also now use a lot of `clap`'s features to improve the CLI experience: - The CLI now expects a subcommand (currently, either "help", or "proxy" for the existing SOCKS proxy behaviour). This should let us add additional non-SOCKS-proxy features to arti in future. - `clap` supports default values determined at runtime, so the way the default config file is loaded was changed: now, we determine the OS-specific path for said file before invoking `clap`, so the help command can show it properly. - The behaviour of `tor_config` was also changed; now, one simply specifies a list of configuration files to load, together with whether they're required. - That function also way overused generics; this has been fixed. - Instead of using the ARTI_LOG environment variable to configure logging, one now uses the `-l, --log-level` CLI option. (The intent is for this option to be more discoverable by users.) - The `proxy` subcommand allows the user to override the SOCKS port used on the CLI without editing the config file.
* Upgrade to latest tracing-{subscriber,journald}Nick Mathewson2021-10-231-2/+2
|
* Rename tor_client/arti_tor_client to arti_client.Nick Mathewson2021-10-211-4/+4
| | | | | | Solves a name conflict with the existing tor_client create. Closes #130.
* arti: On startup, increase the NOFILE resource limit.Nick Mathewson2021-10-141-0/+1
| | | | | | | | | | | The default soft limit is typically enough for process usage on most Unixes, but OSX has a pretty low default (256), which you can run into easily under heavy usage. With this patch, we're going to aim for as much as 16384, if we're allowed. Fixes part of #188.
* proxy: Mark ENFILES and EMFILES as survivable.Nick Mathewson2021-10-141-0/+6
| | | | | | | | I don't love this approach, but those errors aren't distinguished by ErrorKind, so we have to use libc or winapi, apparently. At least nothing here is unsafe. Addresses part of #188.
* Require up-to-date x25519-dalek, async_executors, and argh.Nick Mathewson2021-10-091-1/+1
| | | | | | | | I tried using -Z minimal-versions to downgrade all first-level dependencies to their oldest permitted versions, and found that we were apparently depending on newer features of all three crates. I'm kind of surprised there were only three.
* Re-export configuration types from tor-client.Nick Mathewson2021-10-091-3/+1
|
* Make journald an optional feature.Jani Monoses2021-09-071-1/+2
|
* Allow logging to journald.Jani Monoses2021-09-071-0/+1
| | | | | Log to journald when available, add journald config option. Separate logging setup into its own function.
* Move all crates into a `crates` subdirectory.Nick Mathewson2021-08-271-0/+36
This will cause some pain for now, but now is really the best time to do this kind of thing.