aboutsummaryrefslogtreecommitdiff
path: root/crates/arti/src/lib.rs
Commit message (Collapse)AuthorAgeFilesLines
...
| * | Remove "rustls" from "full", for license reasons.Nick Mathewson2022-06-151-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | Rustls uses ring, which uses code from BoringSSL, which derived from OpenSSL before OpenSSL changed their license. So ring is currently under 3BSD/SSLEay licenses, which aren't GPL-compatible, which may be a problem for some people. See #493.
* | | Add "accel-*" features to arti-client and arti.Nick Mathewson2022-06-131-0/+9
|/ / | | | | | | | | | | | | | | | | | | These need to be optional: they improve performance by shifting to asm implementations, which may not be everybody's idea of good practice. These are not 'pure' features, since they select one implementation but disable another. Therefore they don't go in `full`. Closes #441.
* / Document "full", "experimental" in toplevel crate documentation.Nick Mathewson2022-06-131-41/+56
|/ | | | | Also, unify the features documentation format for those two crates, and document previously undocumented features there.
* lints: Make lint blocks consistentIan Jackson2022-05-311-1/+0
| | | | The remaining consequences of running add_warning
* lints: Add let_unit_value allow to all cratesIan Jackson2022-05-311-0/+1
| | | | | From running add_warning, with manual picking of the right hunks/lines.
* lints: arti: Move some allows outside the auto blockIan Jackson2022-05-311-2/+4
| | | | These need to survive.
* lints: Add lint block delimiters to every crateIan Jackson2022-05-311-0/+2
| | | | | | This was the result of: maint/add_warning crates/*/src/{lib,main}.rs and then manually curating the results.
* Split TorClientConfig out of ArtiConfig, and Resolvable traitIan Jackson2022-05-241-7/+5
| | | | | | | | | | | | This gets rid of `#[serde(flatten)]` which prevents serde_ignored (and other kinds of introspection) from working properly. The price is now that the toplevel has to deal with two configuration objects. The Resolvable trait is overkill right now, but is going to do More Things in a moment. In particular, we need the impl on tuples, so that the whole config can be processed in one go.
* Apply fs-mistrust to logfile directories.Nick Mathewson2022-05-241-1/+10
|
* Make fs-mistrust configurable from the top level.Nick Mathewson2022-05-241-19/+7
| | | | | | This change requires a little refactoring of TorClientBuilder: now, instead of enabling or disabling mistrust, it enables or disables the decision to _override_ the mistrust in the config.
* fs-mistrust: make Mistrust have a corresponding Builder type.Nick Mathewson2022-05-241-9/+7
| | | | | This is an approximately minimal revision to get Builder in place; subsequent commits will clean up the API.
* arti-config abolition: Change references to use tor_configIan Jackson2022-05-131-2/+3
| | | | | | | | Generally, change the paths that mention the crate name to go via a module-level "use". This involves adding tor-config as a direct dependency for a few crates.
* config load: Move mistrust checking to load()Ian Jackson2022-05-131-6/+9
| | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/issues/472 Experimentation convinced me the Mistrust should be within the ConfigurationSources.
* ARTI_EXAMPLE_CONFIG: Rename from ARTI_DEFAULTSIan Jackson2022-05-121-1/+1
| | | | | The defaults are built into the code. This is a doc-commented example file, not the primary specification of what the defaults are.
* ARTI_DEFAULTS: Move to arti crateIan Jackson2022-05-121-1/+1
|
* clippy: Use write! rather than push_str, formatIan Jackson2022-05-111-1/+3
| | | | | This does involve unwrap, but of course that can't fail unless the formats fail, which would already panic (that's implied by format!).
* Move default_config_file() into arti-clientIan Jackson2022-05-111-2/+2
| | | | This will let other embedders use it.
* ConfigurationSource: Move "usual" logic for constructionIan Jackson2022-05-111-26/+6
|
* default_config_file(): Have it return Result, not OptionIan Jackson2022-05-111-8/+10
| | | | Discarding this error is not right.
* ConfigurationSource: Rename new to new_emptyIan Jackson2022-05-111-1/+1
| | | | | This emphasises its nature. We're going to provide a more cooked constructor in a moment.
* Improve documentation around Cargo features; make Runtime require Debugeta2022-05-111-14/+49
| | | | | | | | | | | | | | - arti#445 highlighted the lack of good documentation around Arti's multiple runtime support, as well as it being difficult to determine what runtime was actually in use. - Improve the documentation to solve the first problem. - To solve the second problem, make Runtime require Debug (which is arguably a good idea anyway, since it makes them easier to embed in things), and print out the current runtime's Debug information when arti is invoked with `--version`. - (It also prints out other Cargo features, too!) fixes arti#445
* Merge branch 'use-fs-mistrust'Nick Mathewson2022-05-091-4/+50
|\
| * Add a CLI option to disable FS permission checks.Nick Mathewson2022-05-091-1/+10
| |
| * Remove "Mistrust" from the public API of arti-client.Nick Mathewson2022-05-091-7/+31
| | | | | | | | | | | | | | | | | | | | I'm doing this per discussion, so that we can have it be part of the TorConfig later on, and not break stuff as we change the Mistrust API to have a builder. This change, unfortunately, results in a little more internal complexity and duplicated code in arti and arti-client. I've marked those points with TODOs.
| * arti: use fs-mistrust to validate configuration file locations.Nick Mathewson2022-05-091-1/+14
| |
* | arti: add support for safe-logging configurationNick Mathewson2022-05-061-1/+2
|/ | | | | | Here we add a config option to disable safe logging, and ensure that safe logging is disabled when we are formatting an error message on exit (since we assume it's safe to write sensitive info to stderr.)
* squash! Bump every crate's edition to 2021.Nick Mathewson2022-04-251-2/+0
| | | | | Remove all `use` statements for `TryFrom` and `TryInto`. These are now redundant in Rust 2021.
* Move SystemConfig to arti::cfgIan Jackson2022-03-211-2/+2
| | | | Fixes #314, #418.
* Run rustfmt to tidy up importsIan Jackson2022-03-211-1/+4
|
* ApplicationConfig: abolish accessorIan Jackson2022-03-211-1/+1
|
* Move ApplicationConfig to arti crateIan Jackson2022-03-211-1/+1
| | | | Code motion and import fixups.
* socks: abolish config accessorsIan Jackson2022-03-211-5/+2
| | | | | Making these fields pub(crate) is quite reasonable and does away with the need for accessors.
* Move ProxyConfig to arti crateIan Jackson2022-03-211-1/+1
| | | | | | | We put this in cfg.rs, rather than (say) socks.rs, because it has config relating to both socks.rs and dns.rs. Code motion and import fixups.
* Move logging configuration from arti_config::options to arti::loggingIan Jackson2022-03-211-0/+1
| | | | Code motion and import fixups.
* Rename arti::trace module to arti::loggingIan Jackson2022-03-211-2/+2
| | | | | We are going to move LoggingConfig here. We should follow the already-public name IMO.
* Move ArtiConfig to new arti::cfg moduleIan Jackson2022-03-211-2/+5
| | | | Code motion and import fixups.
* add tests on Isolation and fix conditional compilation issuestrinity-1686a2022-03-161-2/+2
| | | | | | it seems I added conditional compilation without noticing it?? and there was some errors when choosing a prefered runtime depending on feature flags
* fix typos and minor issuestrinity-1686a2022-03-141-13/+18
|
* actually add DNS supporttrinity-1686a2022-03-141-0/+7
|
* add udp to runtimetrinity-1686a2022-03-141-10/+48
|
* arti library crate: Add another note about panickingIan Jackson2022-03-111-0/+4
|
* arti library crate: re-add clippy lintsIan Jackson2022-03-111-0/+33
| | | | | | | I ought to have c&p these. As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/403#note_2786099
* arti library crate: Add note about panickingIan Jackson2022-03-111-0/+4
|
* arti: Make main module entrypoints pubIan Jackson2022-03-111-7/+7
| | | | | This does not constitute any kind of stable API promise. But it might allow people to use our arti client code in novel ways.
* arti: Provide some rubric docs.Ian Jackson2022-03-111-0/+8
|
* arti: Move all code from binary crate to library crateIan Jackson2022-03-111-0/+267
This is just code motion and the minimal fixups.