<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-ptmgr/Cargo.toml, branch arti-v1.1.0</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.1.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.1.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2022-11-30T20:10:16Z</updated>
<entry>
<title>Bump the minor version of every crate.</title>
<updated>2022-11-30T20:10:16Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-11-30T20:10:16Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=38bef96b99dbf17922dc601d4250abc0368b519f'/>
<id>urn:sha1:38bef96b99dbf17922dc601d4250abc0368b519f</id>
<content type='text'>
We made this job easy this time around: by incrementing our MSRV, we
have forced ourselves to do at least a minor bump everywhere.
</content>
</entry>
<entry>
<title>ptmgr: Use anonymize_home when displaying paths in errors</title>
<updated>2022-11-30T00:30:50Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-11-30T00:30:50Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=9765fdc2e6443aece135f2287136d1347094c3f2'/>
<id>urn:sha1:9765fdc2e6443aece135f2287136d1347094c3f2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>PtMgr: Use a persistent state directory for PT state.</title>
<updated>2022-11-28T22:29:32Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-11-28T20:24:40Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=820657b6bc042d2d93f50946969120cead04e829'/>
<id>urn:sha1:820657b6bc042d2d93f50946969120cead04e829</id>
<content type='text'>
This makes a `pt_state` directory inside .local/share/arti (or the
local equivalent), right next to our existing `state` dir.

Ideally we would use a separate directory for each PT, but we have a
very fuzzy "what is a specific PT" notion.

Closes #667
</content>
</entry>
<entry>
<title>PtMgr: New features section in README.md</title>
<updated>2022-11-28T22:29:23Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-11-28T18:34:48Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=6bde90ce01e341eb995005f26305e177c0b906ef'/>
<id>urn:sha1:6bde90ce01e341eb995005f26305e177c0b906ef</id>
<content type='text'>
Per convention, have a `full` feature.

Also, downgrade the 'TODO pt-client' entries in README::limitations,
since they are not blockers for 1.1.0.
</content>
</entry>
<entry>
<title>ptmgr: Mark PtMessage and next_message as experimental-api.</title>
<updated>2022-11-28T22:29:23Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-11-28T18:16:58Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8d0ac9bdc852802fb034d2b72cde79094f673222'/>
<id>urn:sha1:8d0ac9bdc852802fb034d2b72cde79094f673222</id>
<content type='text'>
These are implementation details and we don't want to mark them as
stable.

To do this, I needed to apply some additional options to the example
code's configuration in Cargo.toml.
</content>
</entry>
<entry>
<title>Draft: Pluggable transport manager</title>
<updated>2022-11-28T18:52:21Z</updated>
<author>
<name>eta</name>
<email>tor@eta.st</email>
</author>
<published>2022-11-22T16:24:15Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=3b41c78d6fc5eceac3b45ea9ef1540b72f9b4004'/>
<id>urn:sha1:3b41c78d6fc5eceac3b45ea9ef1540b72f9b4004</id>
<content type='text'>
This commit implements `PtMgr`, a pluggable transport manager
responsible for keeping track of spawned PTs and spawning them to
satisfy client requests on demand.

It does this in two parts: the `PtMgr` type exported to the rest of the
code, and the background `PtReactor` that actually does the spawning;
this design ensures that only one attempt to spawn a PT is active at a
time, and will prove useful later for implementing e.g. timeouts.

A few changes were necessary to the rest of the code in order to make
this all work out. Namely:
- `TransportRegistry`'s API didn't make any sense for two reasons:
  - It wasn't feasible for implementors to implement `ChannelFactory`,
    since that'd require constructing a `ChanBuilder` (which requires a
    bootstrap reporting event sender).
  - Treating the PT manager as a registry is over-general; it's only
    necessary for it to spawn pluggable transports, so saddling it with
    other concerns didn't make any sense.
  - (It's possible to get extensibility for arbitrary user customization
    by just letting the user swap in a new `ChannelFactory`, anyway.)
- Therefore, the `PtMgr` implements the new `AbstractPtMgr` trait, which
  is far more narrowly focused; this only exists to solve a dependency
  loop, and is documented as such.
  - This provides a `TransportHelper` instead of a `ChannelFactory`.
</content>
</entry>
<entry>
<title>tor-ptmgr: make configuration use builders, plumb into arti-client</title>
<updated>2022-11-16T11:39:25Z</updated>
<author>
<name>eta</name>
<email>tor@eta.st</email>
</author>
<published>2022-11-03T14:36:31Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=1c9f6fb179bc88b77079026f249eb3e1678617ca'/>
<id>urn:sha1:1c9f6fb179bc88b77079026f249eb3e1678617ca</id>
<content type='text'>
This brings the draft configuration mechanisms in tor-ptmgr in line with
the config in other crates, using builders. It also plumbs the config
type through into the main `arti-client` config, and adds some example
lines to `arti-example-config.toml`.
</content>
</entry>
<entry>
<title>bump rust-version to 1.60 in every crate.</title>
<updated>2022-11-10T15:57:33Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-11-07T19:18:02Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=936920b26e43447a010e249a9b5a5b9f69ca0da1'/>
<id>urn:sha1:936920b26e43447a010e249a9b5a5b9f69ca0da1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-ptmgr/ipc: First cut of pluggable transport spawning</title>
<updated>2022-10-26T15:07:30Z</updated>
<author>
<name>eta</name>
<email>tor@eta.st</email>
</author>
<published>2022-10-19T13:36:40Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a118a639edfe2130931ca0003368e31834ce0669'/>
<id>urn:sha1:a118a639edfe2130931ca0003368e31834ce0669</id>
<content type='text'>
The new `ipc` module inside `tor-ptmgr` implements the Pluggable
Transport Specification version 1 (`pt-spec.txt`,
https://gitlab.torproject.org/tpo/core/torspec/-/blob/main/pt-spec.txt).

This enables module users to spawn pluggable transport binaries inside a
child process asynchronously, and receive structured information about
how to connect to the transports provided by said binaries.

Internally, this is structured as a pure set of serialisers and
deserialisers for the protocol in the specification (in the form of
environment variables, and the PT's stdout), a wrapper to run the PT
binary and enable accessing its output asynchronously, and a user-facing
wrapper that handles ensuring all the requested transports launched
properly.

The included `run-pt` example is an exceedingly minimal wrapper program
that was useful in testing. More tests can and should be added in a
further MR.

closes arti#394; part of arti#69
</content>
</entry>
<entry>
<title>Bump minor version of tor-rtcompat and most of its dependents</title>
<updated>2022-10-03T14:01:46Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-10-03T14:01:46Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=102e3c221dfadd6578cc6001f0566897fa9acaf8'/>
<id>urn:sha1:102e3c221dfadd6578cc6001f0566897fa9acaf8</id>
<content type='text'>
(Since the APIs for the `Schedule::sleep*` functions changed, this
is a breaking change in tor-rtcompat.  Therefore, the Runtime trait
in tor-rtcompat is now a different trait.  Therefore, anything that
uses the Runtime trait in its APIs has also broken.)
</content>
</entry>
</feed>
