summaryrefslogtreecommitdiff
path: root/crates/tor-proto/semver.md
Commit message (Collapse)AuthorAgeFilesLines
* tor-proto: clean up `CIRCUIT_BUFFER_SIZE`Steven Engler2026-05-211-0/+1
|
* Remove semver.md files post-releaseGabriela Moldovan2026-03-031-3/+0
|
* proto: Remove unused ChannelBuilderDavid Goulet2026-02-191-0/+1
| | | | Signed-off-by: David Goulet <[email protected]>
* proto: Rename CircSyncView to CircHopSyncViewGabriela Moldovan2026-02-161-0/+1
| | | | And update the docs
* proto: Make ChannelProvider::get_or_launch() synchronousGabriela Moldovan2026-02-041-0/+1
| | | | This just removes an unnecessary `async`.
* release: Remove semver.md files from 2.0.0 release.Wesley Aptekar-Cassels2026-02-021-4/+0
|
* chanmgr: Spawn task for ChannelProvider impl of get_or_launch()David Goulet2026-01-131-0/+1
| | | | | | | | | | | | | To pull this off, ChannelProvider::get_or_launch() needed to change from "&self" to "self: Arc<Self>" so we could pass self to the spawned task. This is fine as the caller of ChannelProvider (circuit reactor) has a Arc<ChanMgr>. This also removes the PhantomData for the runtime as we now actually use it. Signed-off-by: David Goulet <[email protected]>
* proto: Add semver.md for breaking changesDavid Goulet2026-01-131-0/+3
| | | | Signed-off-by: David Goulet <[email protected]>
* Remove semver.md files post-releaseGabriela Moldovan2025-12-021-4/+0
|
* proto: Add a semver entry for ClientInitiatorHandshakeDavid Goulet2025-11-191-0/+2
| | | | Signed-off-by: David Goulet <[email protected]>
* proto: Replace ClientCircSyncView in IncomingStreamRequestFilterGabriela Moldovan2025-10-301-0/+2
|
* maint: remove all semver.md filesSteven Engler2025-10-301-1/+0
|
* proto: Change visibility for some channel objectsDavid Goulet2025-10-231-0/+1
| | | | | | | | | | Upcoming code for relay channels are put in the src/relay module and thus we need visibility into some channel generic things. Turns out also we don't need to re-export publicly UnverifiedChannel and VerifiedChannel. Signed-off-by: David Goulet <[email protected]>
* release: Remove old semver.md files.Wesley Aptekar-Cassels2025-10-021-3/+0
|
* circmgr: Pass the timeout estimator to circuit constructor.Gabriela Moldovan2025-09-161-1/+1
| | | | | This enables us to read the CBT estimates from the circuit reactor (we need these to compute the half-stream timeouts for #264).
* proto: Use the CBT to compute half-stream timeouts.Gabriela Moldovan2025-09-161-0/+1
|
* Merge branch 'xon-xoff-checker' into 'main'David Goulet2025-09-151-0/+1
|\ | | | | | | | | tor-proto,tor-netdir: add flow control consensus parameters See merge request tpo/core/arti!3249
* | tor-proto: fix path of `semver.md`Steven Engler2025-09-111-0/+1
|/ | | | | `Release.md` gives a wildcard path of `crates/*/semver.md`, so it seems that these files should go in the top level of each crate.
* Remove semver.md filesNick Mathewson2025-08-281-2/+0
|
* proto: Add a circuit module shared between client and relay impls.Gabriela Moldovan2025-08-281-0/+1
| | | | | | | This is just code motion (I suggest reviewing with `--color-moved`). This also moves the implementation-agnostic parts from `tor_proto::client::circuit` to a new `tor_proto::circuit` module.
* proto: Move the `stream` module under `client` (breaking).Gabriela Moldovan2025-08-181-0/+1
| | | | | | | | | | | | The `stream` module is client-specific, for the most part, so I am moving it under `client`. Later on, we will factor out the parts that can be shared with the relay implementation. Note: this is a breaking change as the deleted `stream` module was `pub`. We could've kept the module and reexported from it the public types from `tor_proto::client::stream`, but I think it's better to have this `client` namespacing, because it makes the separation between the client and relay parts clearer.
* Remove semver.md files post-release.Gabriela Moldovan2025-07-081-7/+0
|
* tor-proto: rework `StreamReceiver` into a `futures::Stream`Steven Engler2025-06-261-0/+2
| | | | | | | | | | | Having this be a `futures::Stream` makes it nicer to work with. For example we are able to remove a boxed future from `DataReaderState`, which should be better for performance and makes the code simpler. As mentioned in a previous commit when this type was named `StreamReader`, this type is public in the API, but is not actually accessible. As far as I can tell there is no way to construct it or access it.
* tor-proto: rename `StreamReader` to `StreamReceiver`Steven Engler2025-06-261-1/+2
| | | | | | | | | | | | | In rust, the typical nomenclature is to use "receiver" for channels, and "reader" for byte streams. For example `mpsc::Receiver` for something that returns objects and `AsyncRead` for something that reads bytes. Since we also have a `DataReader` for reading bytes, I think renaming this from `StreamReader` to `StreamReceiver` better describes what it is (it's not a "reader" in the typical `Read`/`AsyncRead` sense). This type is public in the API, but is not actually accessible. As far as I can tell there is no way to construct it or access it.
* Add a semver file for tor-proto changesNick Mathewson2025-06-101-0/+4
|
* release: Delete semver.md files after release.Alexander Hansen Færøy2025-06-051-2/+0
|
* tor-proto: Remove deprecated ClientCirc functions.Gabriela Moldovan2025-05-151-0/+2
| | | | | | These functions have been deprecated for a while, and are now complicating the `MutableState` changes we need to do for #1840, so it seems like a good time to remove them.
* release: Bump all unstable tor/arti crates to 0.30.0Wesley Aptekar-Cassels2025-05-011-1/+0
| | | | | | | | ``` for crate in $(./maint/list_crates | rg '^(tor|arti-)'); do cargo set-version -p $crate 0.30.0 done ```
* maint: Update semver.md files from semver-checksWesley Aptekar-Cassels2025-04-301-0/+1
|
* Remove semver.md files post-release.Gabriela Moldovan2025-04-011-1/+0
|
* proto: make padding::Parameters construction fallible.Nick Mathewson2025-03-181-0/+1
| | | | | | | The constructor for rand::distr::Uniform is now fallible, so it makes sense to bubble up its restrictions. This is a breaking change.
* Remove semver files for 1.4.1Nick Mathewson2025-03-031-1/+0
|
* tor-proto: added 'semver.md' fileSteven Engler2025-02-101-0/+1
|
* Remove semver.md files post releaseIan Jackson2025-02-071-5/+0
|
* proto: Remove ConversationInHandlerDavid Goulet2025-02-041-0/+1
| | | | | | | | | | | | | | | | | | | It is unused but most importantly it allows any RELAY cell to be sent from anywhere in the code which is really not desirable because it is skipping congestion control. It also allows us to remove the `control_tx` from the reactor which is one less channel to track/understand/think about. This opens up the door to all sorts of problems especially side channel that can be exploited if we are not careful. We can always bring this back if we need it but for now, it is unused and allows us to remove the `CtrlMsg::SendRelayCell` control message. No code behavior change. Signed-off-by: David Goulet <[email protected]>
* tor-proto: Rewrite circuit reactor run_once() loop to use select!.Gabriela Moldovan2025-01-291-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This rewrites the circuit reactor main loop to use `select_biased!` to poll multiple futures simultaneously. The new `run_once()`, like the old, first waits for an initial `CtrlMsg::Create`. Then, it uses a `select_biased!` to poll the `chan_sender` sink and shutdown channel for readiness. When the channel sink is ready, we poll the `control` and `input` channels like before, as well as the new `ready_streams` `Stream` (`ready_streams` is a `futures::Stream` that replaces the previous `send_outbound()` function). Most of the implementation remains unchanged, except the `handle_input`, `handle_cell` and `handle_control` functions no longer send anything on the `chan_sender` channel. Instead, they may do some (synchronous) processing, and send instructions for the remaining work that needs to be done (for example, for writing the cell to the `chan_sender` channel). These instructions are handled at the end of `run_once()`, and are encoded in the `RunOnceCmdInner` enum. What this change does **not** do: * the control channel *still* bypasses congestion control. We could fix this by making the various reactor functions send the `RunOnceCmdInner` commands to `run_once()` via a channel (instead of returning them). This would enable the reactor to stop reading the commands (except for handle `Sendme`, which would be handled separately) if it's blocked on congestion control.
* tor-rtcompat: Big invasive change adding StreamOps bound everywhere.Gabriela Moldovan2025-01-151-0/+1
| | | | | | This is unfortunately necessary, because after the channel handshake, we need to give the channel reactor a `StreamOps` handle to the underlying stream.
* tor-rtcompat: Add the ability to get a StreamOps handle.Gabriela Moldovan2025-01-151-0/+1
| | | | | | | | | | | | | | | | | | | | | | | Needed for cases where we wrap an object that implements `StreamOps` in an external type, thereby losing access to the `StreamOps` functionality. For example, during the channel handshake, we `.split()` the stream that implements `StreamOps`, which leaves us with a `SplitSink` and a `SplitStream`, neither of which implement `StreamOps`. Getting a handle to the underlying object that implements `StreamOps` (for example, a file handle) *before* the stream is `.split()` enables us to use `StreamOps` to manipulate the underlying split stream. This commit also introduces a special `UnsupportedStreamOpsHandle`, which is a type that implements `StreamOps`, but always returns an error. This type is meant to simplify error handling and usage, and is meant to be used in cases where `StreamOps` is not supported. TODO: the name of this type is pretty confusing (it's very similar to `UnsupportedStreamOp`, which is an error type), and should probably be renamed to something else (`NoOpStreamOpsHandle`, `BrokenStreamOpsHandle`, `DummyStreamOpsHandle` come to mind...). Note: this changes the `StreamOps` trait to be slightly different from what I originally envisioned in !2660 and #1769
* Remove semver.md files.Gabriela Moldovan2024-06-051-10/+0
| | | | The 1.2.4 release is out, so we won't be needing these anymore.
* Make Channel non-Clone.Nick Mathewson2024-05-161-0/+2
|
* proto: Make Channel explicitly Arc<.>Nick Mathewson2024-05-161-0/+3
| | | | | | | | | | | | | | | | Previously, Channel was a type that you could Clone that implicitly its state. Now, Channel always appears as an Arc<Channel>. This change has several benefits: * It makes the relationship between Channel struct and the underlying channel more clear. * It enables Channel to participate in the RPC system, where everything has to be an Arc<.> * It enables us to have a Weak<Channel>, if we ever want to. * It will let us move various members out of ChannelDetails. We did this change a while ago with ClientCirc.
* proto: Move Channel send functionality into a separate type.Nick Mathewson2024-05-161-0/+5
| | | | | | | | | | | | This serves three purposes: * It removes the 'send a cell' method from the channel's public API. Nothing outside of tor-proto should have to use this. * It paves the way for giving each circuit a separate handle onto the channel's send functionality. This will eventually let the channel multiplex among circuits more intelligently. * It prepares for the next commit, which will make Channel itself universally Arc<.>ed.
* Remove semver.md files from arti 1.2.0 release.Gabriela Moldovan2024-03-041-1/+0
|
* tor-proto: Note the addition of PendingClientCirc::peek_unique_id in semver.md.Gabriela Moldovan2024-02-281-1/+1
|
* tor-circmgr: Add a helper for displaying optional UniqIds.Gabriela Moldovan2024-02-271-0/+1
| | | | | | | | Some of the `tor_circmgr::Error` variants will include the `UniqId` of the corresponding circuit, so we'll need to be able to display it without the `Circ ` prefix. Part of #1297
* Remove semver.md files.Nick Mathewson2023-12-041-3/+0
|
* Add `ClientCirc::extend_ntor_v3`Jim Newsome2023-11-271-0/+1
|
* Add PendingClientCirc::create_firsthop_ntor_v3Jim Newsome2023-11-271-0/+1
|
* Send less information in onion service BEGIN messagesNick Mathewson2023-11-151-0/+1
| | | | | | | | | While looking for differences, we found that C tor always omits the flags and the hostname from a BEGIN message sent on an onion service circuit. In torspec!179, we specified that behavior. This patch brings arti into conformance. Closes #1077.
* Remove semver.md files from arti 1.1.10Nick Mathewson2023-10-311-3/+0
|