<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-events, branch arti-v0.0.3</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v0.0.3</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v0.0.3'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2022-01-11T14:40:32Z</updated>
<entry>
<title>Bump all crate versions to 0.0.3.</title>
<updated>2022-01-11T14:40:32Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-01-11T14:40:32Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=7d3482ca1ae7249b73feeca98595bae5f4c6afe9'/>
<id>urn:sha1:7d3482ca1ae7249b73feeca98595bae5f4c6afe9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Minimize the required version for each dependency.</title>
<updated>2022-01-08T00:08:58Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-01-07T20:54:24Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=4841b50c9fc35713d3c1afcccb3353f257deedd7'/>
<id>urn:sha1:4841b50c9fc35713d3c1afcccb3353f257deedd7</id>
<content type='text'>
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 &gt;= 1.0.5: Earlier versions break our hyper example.

async-broadcast &gt;= 0.3.2: Earlier versions fail our tests.

async-compression 0.3.5: Earlier versions handled futures and tokio
    differently.

async-trait &gt;= 0.1.2: Earlier versions are too buggy to compile our
    code.

clap 2.33.0: For Arg::default_value_os().

coarsetime &gt;= 0.1.20: exposed as_ticks() function.

curve25519-dalek &gt;= 3.2: For is_identity().

generic-array 0.14.3: Earlier versions don't implement
    From&lt;&amp;[T; 32]&gt;

httparse &gt;= 1.2: Earlier versions didn't implement Error.

itertools at 0.10.1: For at_most_once.

rusqlite &gt;= 0.26.3: for backward compatibility with older rustc.

serde 1.0.103: Older versions break our code.

serde_json &gt;= 1.0.50: Since we need its Value type to implement Eq.

shellexpand &gt;= 2.1: To avoid a broken dirs crate version.

tokio &gt;= 1.4: For Handle::block_on().

tracing &gt;= 0.1.18: Previously, tracing_core and tracing had separate
    LevelFilter types.

typenum &gt;= 1.12: Compatibility with rust-crypto crates

x25519-dalek &gt;= 1.2.0: For was_contributory().

Closes #275.
</content>
</entry>
<entry>
<title>extend lints to include 'clippy::all'</title>
<updated>2021-12-28T20:15:40Z</updated>
<author>
<name>Daniel Eades</name>
<email>danieleades@hotmail.com</email>
</author>
<published>2021-12-28T20:15:40Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=592642a9e6c1c03e525f8b452f4b97e6fd17ff9b'/>
<id>urn:sha1:592642a9e6c1c03e525f8b452f4b97e6fd17ff9b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'readme_fixes'</title>
<updated>2021-11-30T14:12:51Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-11-30T14:12:51Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=3b072c542064002f71d2a6a6a9fc22a83dbe5962'/>
<id>urn:sha1:3b072c542064002f71d2a6a6a9fc22a83dbe5962</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Bump every crate by one patch version.</title>
<updated>2021-11-29T20:21:58Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-11-29T20:21:58Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=eef81d9d570572b7a57a76de4003721c546856de'/>
<id>urn:sha1:eef81d9d570572b7a57a76de4003721c546856de</id>
<content type='text'>
</content>
</entry>
<entry>
<title>run ./maint/readmes.sh</title>
<updated>2021-11-29T11:29:28Z</updated>
<author>
<name>dagon</name>
<email>dagon12@tutanota.com</email>
</author>
<published>2021-11-29T11:29:28Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d5c48c616fd40313f0428d14bae97419ae3dac95'/>
<id>urn:sha1:d5c48c616fd40313f0428d14bae97419ae3dac95</id>
<content type='text'>
</content>
</entry>
<entry>
<title>add semicolons if nothing returned</title>
<updated>2021-11-25T13:20:37Z</updated>
<author>
<name>Daniel Eades</name>
<email>danieleades@hotmail.com</email>
</author>
<published>2021-11-25T13:14:05Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=db16d13df4779ac61005050dfe5ce05e3d5a1b5d'/>
<id>urn:sha1:db16d13df4779ac61005050dfe5ce05e3d5a1b5d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove a couple more eprintln! calls.</title>
<updated>2021-11-23T22:40:13Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-11-23T22:40:13Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=54de7f5cfd82eb04e1e119d1734eee2d6ee1176d'/>
<id>urn:sha1:54de7f5cfd82eb04e1e119d1734eee2d6ee1176d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add and resolve clippy warnings in tor-events.</title>
<updated>2021-11-22T16:49:31Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-11-22T16:49:31Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=94790016495c61e2913d645fde51274e963437b1'/>
<id>urn:sha1:94790016495c61e2913d645fde51274e963437b1</id>
<content type='text'>
Here we add the same array of clippy warnings as usual to the new
tor-event crate, and resolve the issues that triggered any of them.
</content>
</entry>
<entry>
<title>Initial cut at a typed event framework for arti (arti#230).</title>
<updated>2021-11-22T14:39:38Z</updated>
<author>
<name>eta</name>
<email>tor@eta.st</email>
</author>
<published>2021-11-16T15:21:47Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=98f38dc186212624d377653ed8ecf3c47366c3ad'/>
<id>urn:sha1:98f38dc186212624d377653ed8ecf3c47366c3ad</id>
<content type='text'>
This implements a basic typed event broadcast mechanism, as described in
arti#230: consumers of the new `tor-events` crate can emit `TorEvent`
events, which others can consume via the `TorEventReceiver`.

Under the hood, the crate uses the `async-broadcast`
(https://github.com/smol-rs/async-broadcast) crate, and a
`futures::mpsc::UnboundedSender` for the event emitters; these are glued
together in the `EventReactor`, which must be run in a background thread
for things to work. (This is done so event sending is always cheap and
non-blocking, since `async-broadcast` senders don't have this
functionality.)

Additionally, the `TorEventKind` type is used to implement selective
event reception / emission: receivers can subscribe to certain event
types (and in fact start out receiving nothing), which filters the set
of events they receive. Having no subscribers for a given event type
means it won't even be emitted in the first place, making things more
efficient.
</content>
</entry>
</feed>
