summaryrefslogtreecommitdiff
path: root/crates/arti-client/src/lib.rs
Commit message (Collapse)AuthorAgeFilesLines
* Fix documentation references for tor-rtcompat refactoring.Nick Mathewson2022-01-261-5/+7
|
* Make current/create functions into runtime member functions.Nick Mathewson2022-01-261-1/+1
| | | | | This should help avoid some amount of temptation towards API proliferation.
* StreamPrefs: rename from ConnectPrefsIan Jackson2022-01-211-2/+2
| | | | | | | | | | | | | The docs even say this is about stream. As @nickm writes in https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/252#note_2771289 we generally call end-to-end connections that are tunneled over Tor "Streams" to distinguish them from everything else in the Tor protocols that could possibly be called a "Connection". That seems to apply here too.
* Implement the basics of a bootstrap-status API.Nick Mathewson2022-01-131-0/+1
| | | | | | | | | | | | 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.
* Improve the layout of crate exports; add runtime convenience functionseta2022-01-111-1/+1
| | | | | | | | | | | | | | | | | | | | This commit addresses multiple problems highlighted by arti#182: - `arti-client` had some types in its public API that weren't accessible without importing another crate (`CfgPath`, `DataReader`, `DataWriter`). This has been fixed. - In addition, the doc comments for `DataReader` and `DataWriter` were cleaned up to be of better quality, now that they're public. - It was impossible to use `arti-client` without also importing `tor-rtcompat`. This is now fixed by the addition of two convenience methods: `TorClient::bootstrap_with_tokio` and `TorClient::bootstrap_with_async_std`. - Potentially controversially: `tor-rtcompat` now returns *concrete* types from methods like `current_runtime`, instead of `impl Runtime`. - This was needed in order to actually be able to name the `TorClient` type that results from using these methods. - This does mean we lose API flexibility, but on balance I think this is a good thing, because the API we *do* have is actually usable...
* Make the arti_client::Result type public.Nick Mathewson2022-01-101-2/+2
| | | | Closes #280.
* Use *_with_prefs() for Option<ConnectPrefs> callers in TorClient::connectNeel Chauhan2022-01-081-1/+1
|
* extend lints to include 'clippy::all'Daniel Eades2021-12-281-0/+1
|
* Change sane_defaults() and with_directories()Nick Mathewson2021-11-291-1/+1
| | | | | | | | The sane_defaults() call is now the same as you get from a default builder: by convention, we just call that method Default::default(). The with_directories() constructor makes more sense as a constructor for the TorClientConfigBuilder than for TorClientConfig.
* add semicolons if nothing returnedDaniel Eades2021-11-251-0/+1
|
* More typo fixes that I forgot to save :(Nick Mathewson2021-11-241-2/+2
|
* Improve docs of more (potentially re-exported) arti-client typeseta2021-10-291-12/+0
| | | | | | | | | | | | | | | | | | | | | Most of the structs in `arti-client` have example code now, to give a clearer idea of how they're used. Annoyingly, a lot of the types exposed in `arti-client` are actually re-exports, which makes documentation a bit harder: example code that references other parts of `arti-client` can't actually be run as a doctest, since the crate it's in is a dependency of `arti-client`. We might be able to fix this in future by doing the documentation in `arti-client` itself, but rustdoc seems to have some weird behaviours there that need to be investigated first (for example, it seems to merge the re-export and original documentation, and also put the re-export documentation on the `impl` block for some reason). For now, though, this commit just writes the docs from the point of view of an `arti-client` consumer, removing notes specific to the crate in which they're defined. It's not ideal, but at least the end user experience is decent.
* arti-client example: Try to make the comments a little more clear.Nick Mathewson2021-10-281-6/+10
| | | | | I'm not 100% sure this is better, but it might help the user understand how Arti works a bit better.
* Improve top-level arti-client documentation, add example codeeta2021-10-281-15/+99
| | | | | | | | | | | | | | | | | | | | | This overhauls the top-level `arti-client` documentation significantly: - the "Using arti-client" section walks the user through all of the necessary steps to initiate a Torified TCP connection, and then provides a code example - this example is also available as `examples/readme.rs`; it's not run as a doctest, since it involves connecting to Tor - a "More advanced usage" subheading provides information about stream isolation (and can potentially be used for other interesting features once we get them). - a new "Multiple runtime support" section was added to explain the purpose and usage of the `tor-rtcompat` crate - the section on design and privacy considerations was removed; this is probably okay to keep in a README, but users of the crate aren't going to be interested in this (at least I don't think) (also, the doc comment for `arti_client::Error` was fixed to make actual sense)
* Update our disclaimers and limitations sections.Nick Mathewson2021-10-271-16/+7
|
* s/arti-arti-client/arti-client/ and regenerate readme filesNick Mathewson2021-10-251-1/+1
|
* Rename tor_client/arti_tor_client to arti_client.Nick Mathewson2021-10-211-0/+122
Solves a name conflict with the existing tor_client create. Closes #130.