Commit Graph

1408 Commits (refactor-network-code)
 

Author SHA1 Message Date
Daniel Karzel c6db22d882
Move CLI network protocols into network module
Adds asb module to the network module.
3 years ago
Daniel Karzel da7c3a9c9a
Move ASB network protocols into network module
Adds asb module to the network module.
3 years ago
bors[bot] ca6cb0a76a
Merge #527
527: Release version 0.6.0 r=da-kami a=comit-botty-mc-botface

Hi @da-kami!

This PR was created in response to a manual trigger of the release workflow here: https://github.com/comit-network/xmr-btc-swap/actions/runs/870083908.
I've updated the changelog and bumped the versions in the manifest files in this commit: 30b2cb467a8dde873da16cedf69f5b4ccbdb7508.

Merging this PR will create a GitHub release and upload any assets that are created as part of the release build.

Co-authored-by: Daniel Karzel <daniel@comit.network>
Co-authored-by: COMIT Botty McBotface <botty@coblox.tech>
3 years ago
COMIT Botty McBotface 3f2d094f65
Prepare release 0.6.0 3 years ago
Daniel Karzel 4804359ee3
Update ASB readme
Remove CLi defaults because they may get outdated very fast.
Recommendation to run own node.
Link to public bitcoin nodes as well.
3 years ago
Daniel Karzel 1de907b176
Change default Monero mainnet node to xmr.to
It appears to be more stable.
Encountered issues with the previous setup, `monero-wallet-rpc` logs:

```
2021-05-24 04:23:54.852	E !r. THROW EXCEPTION: tools::error::no_connection_to_daemon
2021-05-24 04:23:54.857	E Exception at while refreshing, what=no connection to daemon
```
3 years ago
bors[bot] ded9ea1b79
Merge #525
525: Bitcoin transaction published state r=da-kami a=da-kami

This improves the error handling on the ASB.
Once the Bitcoin redeem transaction is seen in mempool, the state machine cannot transition to a cancel scenario anymore because at that point the CLI will have redeemed the Monero.
The additional state then waits for transaction finality and prevents re-publishing the transaction.

Co-authored-by: Daniel Karzel <daniel@comit.network>
3 years ago
bors[bot] 284733d359
Merge #522
522: Add support for arm architecture to Swap CLI r=da-kami a=bonomat

Tested locally on my RPI4

Co-authored-by: Philipp Hoenisch <philipp@hoenisch.at>
3 years ago
Daniel Karzel 01af9a5676
Bitcoin transaction published state
This improves the error handling on the ASB.
Once the Bitcoin redeem transaction is seen in mempool, the state machine cannot transition to a cancel scenario anymore because at that point the CLI will have redeemed the Monero.
The additional state then waits for transaction finality.
3 years ago
bors[bot] bc27b9a47d
Merge #524
524: Update the README for mainnet r=da-kami a=da-kami



Co-authored-by: Daniel Karzel <daniel@comit.network>
3 years ago
Daniel Karzel 7a787fba6a
Update the README for mainnet 3 years ago
bors[bot] db319d0a90
Merge #520
520: Cli json logging r=da-kami a=da-kami

Combining `--json` with the debug file logger was a pita, so I stopped and went for a simpler approach:

If `--json` is given we just log to terminal - **no** logfiles will be created in `{data-dir}/logs`. 
The `--debug` flag applies to `--json` (i.e. if not given it will just print json on info level). We could change that to automatically fallback to debug - could add a `required_if` dependency via strucopt/clap but I did not want to invest more time into thinking about this.

Note on extending binary functionality:
As discussed with @thomaseizinger recently, we will have to think about multiple binaries soon, i.e. a binary that focuses to be used to building on top of it (that always logs json) and potientially keeping a simple CLI that is more user friendly. This also goes towards more clearly separating the application code from re-usable protocol / network code. 


Co-authored-by: Daniel Karzel <daniel@comit.network>
3 years ago
Philipp Hoenisch 21babf9678
Support armv7 architecture for monero-wallet-rpc.
This allows us to run swap cli on a raspberry pi 4.
3 years ago
Philipp Hoenisch a445ddd2bd
Print download URL while downloading. 3 years ago
Philipp Hoenisch f6c7410457
Upgrade monero-wallet-rpc to version 2.0 3 years ago
bors[bot] ba33e1acc1
Merge #519
519: Avoid application error upon `--help` r=da-kami a=da-kami

Our `preview` release is currently broken because of this issue.

The way we use clap's `get_matches_from_safe` caused parsing errors upon `--help` and `--version` to be bubbled up to the application - which causes the application to exit with an error when running `--help` and `--version`.
This is solved by using `get_matches_from` instead of `get_matches_from_safe` which handles these known clap commands internally and exits early. 

Added smoke tests to CI so we catch such kind of problems in the future. Smoke testing by calling `--help` is cheap and should be OK in CI.

Co-authored-by: Daniel Karzel <daniel@comit.network>
3 years ago
Daniel Karzel fb9fb21c2b
CLI log statements to be more JSON friendly
Values to be logged as fields.
Upon starting a swap we print the swap-id as well.
3 years ago
Daniel Karzel 0187d9ef4f
Introduce `--json` flag for the CLI
When `--json` is used the CLI does not log to file, but only on the command line in json output.
3 years ago
bors[bot] 0032e820af
Merge #512
512: Bump libp2p from 0.37.1 to 0.38.0 r=thomaseizinger a=dependabot[bot]

Bumps [libp2p](https://github.com/libp2p/rust-libp2p) from 0.37.1 to 0.38.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/libp2p/rust-libp2p/releases">libp2p's releases</a>.</em></p>
<blockquote>
<h2>v0.38.0</h2>
<p>See individual <a href="https://github.com/libp2p/rust-libp2p/blob/HEAD/CHANGELOG.md">changelogs</a> for details.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/libp2p/rust-libp2p/blob/master/CHANGELOG.md">libp2p's changelog</a>.</em></p>
<blockquote>
<h2>Version 0.38.0 [2021-05-17]</h2>
<ul>
<li>Update individual crates.
<ul>
<li><code>libp2p-core</code></li>
<li><code>libp2p-gossipsub</code></li>
<li><code>libp2p-noise</code></li>
<li><code>libp2p-pnet</code></li>
<li><code>libp2p-wasm-ext</code></li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="0b7ee3fa92"><code>0b7ee3f</code></a> *: Prepare v0.38.0 (<a href="https://github-redirect.dependabot.com/libp2p/rust-libp2p/issues/2072">#2072</a>)</li>
<li><a href="c5bcada2c2"><code>c5bcada</code></a> protocols/gossipsub: Rework connection keep-alive (<a href="https://github-redirect.dependabot.com/libp2p/rust-libp2p/issues/2043">#2043</a>)</li>
<li><a href="9c5dd84099"><code>9c5dd84</code></a> build(deps): Update snow requirement from 0.7.1 to 0.8.0 (<a href="https://github-redirect.dependabot.com/libp2p/rust-libp2p/issues/2068">#2068</a>)</li>
<li><a href="1fdac073fc"><code>1fdac07</code></a> build(deps): Bump actions-rs/toolchain from 1 to 1.0.7 (<a href="https://github-redirect.dependabot.com/libp2p/rust-libp2p/issues/2069">#2069</a>)</li>
<li><a href="10fcc1c485"><code>10fcc1c</code></a> build(deps): Bump actions-rs/cargo from 1 to 1.0.3 (<a href="https://github-redirect.dependabot.com/libp2p/rust-libp2p/issues/2070">#2070</a>)</li>
<li><a href="82c8b1a4b3"><code>82c8b1a</code></a> build(deps): Bump actions/checkout from 2 to 2.3.4 (<a href="https://github-redirect.dependabot.com/libp2p/rust-libp2p/issues/2071">#2071</a>)</li>
<li><a href="43a8ad8fc2"><code>43a8ad8</code></a> protocols/relay/examples: Add client server instructions (<a href="https://github-redirect.dependabot.com/libp2p/rust-libp2p/issues/2060">#2060</a>)</li>
<li><a href="8988ac247e"><code>8988ac2</code></a> protocols/mdns: Fix discovered event emission. (<a href="https://github-redirect.dependabot.com/libp2p/rust-libp2p/issues/2065">#2065</a>)</li>
<li><a href="5c541a16f1"><code>5c541a1</code></a> build(deps): update salsa20 requirement from 0.7 to 0.8 (<a href="https://github-redirect.dependabot.com/libp2p/rust-libp2p/issues/2062">#2062</a>)</li>
<li><a href="d931f36428"><code>d931f36</code></a> transport/wasm-ext: Support dialing <code>Multiaddr</code> with <code>/p2p</code> protocol (<a href="https://github-redirect.dependabot.com/libp2p/rust-libp2p/issues/2058">#2058</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/libp2p/rust-libp2p/compare/v0.37.1...v0.38.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=libp2p&package-manager=cargo&previous-version=0.37.1&new-version=0.38.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
3 years ago
Daniel Karzel 9ff29ae491
CLI `--help` and `--version` are handled correctly
Since we introduced our own parsing function for command line arguments, we have to make sure that clap's behaviour is handled correctly.
Clap's `get_matches_from_safe` returns an error of a certain kind, of which `ErrorKind::HelpDisplayed` and `ErrorKind::VersionDisplayed ` have to be handled to properly print the help/version and exit the program.
The clap error includes the message, so we print help/version in main now and ensure the program exits with `0` afterwards.
3 years ago
bors[bot] 014388bfaa
Merge #518
518: Fix bug that breaks swap ID for logging r=da-kami a=da-kami

Somehow I introduced this really stupid bug. Might have happened during a rebase. 

We create the swap id at the top of main.
Creating another id here breaks the name of the swap's logfile for the CLI, because the actual swap will have another id. 
Should definitely go in before releasing :)

Co-authored-by: Daniel Karzel <daniel@comit.network>
3 years ago
Daniel Karzel 22bf48c287
Fix bug that breaks swap ID for logging 3 years ago
bors[bot] bdb88f89cb
Merge #490
490: Mainnet switch r=da-kami a=da-kami

Fixes  #446
Fixes #360 
Fixes #506 
Fixes #478 

To be precise: It is actually a testnet switch, because I think mainnet should be default.

I took several assumptions on the way (e.g. network support, ...).

At this stage any feedback welcome :)

TODO:

- [ ] successful mainnet swap with this code base before merging :)

Co-authored-by: Daniel Karzel <daniel@comit.network>
3 years ago
Daniel Karzel 2db470f099
Bitcoin=2 Monero=10 default finality confirmations
It is currently not expected that ASB and CLI are used for swaps > 10_000$ equivalent to XMR/BTC, thus the finality confirmations were reduced to an equivalent of 20 mins of work (2 blocks for Bitcoin, 10 for Monero).
Monero enforces 10 unlocking blocks until the balance is spendable, so the finality confirmations cannot be set lower than 10.
3 years ago
Daniel Karzel 6694e4f4e0
Ensure that output of lock script is at tx-output index `0`
We subscribe to transactions upon broadcast, where we use output index `0` for the subscription.
In order to ensure that this subscription is guaranteed to be for the locking script (and not a change output) we now ensure that the locking script output is always at index `0` of the outputs of the transaction.

We chose this solution because otherwise we would have to add more information to broadcasting a transaction.
This solution is less intrusive, because the order of transaction outputs should not have any side effects and ensuring index `0` makes the whole behaviour more deterministic.
3 years ago
Daniel Karzel bae38a712f
Sync on interval instead of ping
Since we don't rely on long running subscriptions anymore we can remove the ping that was used to ensure a connection refresh.
3 years ago
Daniel Karzel efb51820b1
Poll block headers for latest block on each iteration
The Electrum block-header subscription did not provide us with block headers, because upon the connection being closed by a node the subscription would end.
Re-newing the the subscription upon re-connect is not easily achievable, that's why we opted for a polling mode for now, where we start a block header subscription on every update iteration, that is only used once (when the subscription is made).
3 years ago
Daniel Karzel f2e43ea565
Let testnet setup reflect mainnet
Our test values should reflect what we test on mainnet more closely to avoid bugs that are only observed when using mainnet settings.
3 years ago
Daniel Karzel 4dd696ebe1
Fix `monero-wallet-rpc` startup for mainnet CLI
There is no `--mainnet` flag.
Since we cannot just pass an empty string to `.arg()` we use the `.args()` method to pass nothing for mainnet and the respective flags for stagenet and testnet.
3 years ago
Daniel Karzel 1aaffb09f9
Refactor ASB test-/mainnet default dir init 3 years ago
Daniel Karzel cfa85e0bad
Simplify ASB initial setup signature 3 years ago
Daniel Karzel 7f8af7926d
ASB config may specify finality confirmations
By default the finality confirmations of the network's `env::Config` will be applied and no finality confirmations will be persisted on disk in the config file.
It is however possible to set finality confirmations in the config file for bitcoin and monero for power users at their own risk.
If set the defaults will be overwritten with the parameter from the config file upon startup.
3 years ago
Daniel Karzel 7ec323ea1f
Mainnet changelog entry 3 years ago
Daniel Karzel af60d3bb54
Network check upon spot price request 3 years ago
Daniel Karzel 02974811ad
Activate mainnet for the ASB
To run the ASB on testnet, one actively has to provide the `--testnet` flag.
Mainnet and testnet data and config are separated into sub-folders, i.e. `{data/config-dir}/asb/testnet` and `{data-dir}/asb/mainnet`.
The initial setup is also per network. If (default) config for the network cannot be found the initial setup is triggered.
Startup includes network check to ensure the bitcoin/monero network in config file is the same as the one in the `env::Config`.

Note: Wallet initialization is done with the network set in the `env::Config`, the network saved in the config file is just to indicate what network the config file is for.
3 years ago
Daniel Karzel 9ac5b635d7
Introduce own de-/serializable `monero::Network` 3 years ago
Daniel Karzel 69cf12620d
Activate mainnet for the CLI
This includes testing CLI commandline args
Clap's `default_value_with` actually did not work on `Subcommand`s because the parent's flags were not picked up.
This was fixed by changing parameters dependent on testnet/mainnet to options.
This problem should have been detected by tests, that's why the command line parameter tests were finally (re-)added.

Thanks to @rishflab for some pre-work for this.
3 years ago
dependabot[bot] 6c206c7067
Bump libp2p from 0.37.1 to 0.38.0
Bumps [libp2p](https://github.com/libp2p/rust-libp2p) from 0.37.1 to 0.38.0.
- [Release notes](https://github.com/libp2p/rust-libp2p/releases)
- [Changelog](https://github.com/libp2p/rust-libp2p/blob/master/CHANGELOG.md)
- [Commits](https://github.com/libp2p/rust-libp2p/compare/v0.37.1...v0.38.0)

Signed-off-by: dependabot[bot] <support@github.com>
3 years ago
bors[bot] 4f4303462a
Merge #511
511: Use tokio-tar from crates.io r=thomaseizinger a=thomaseizinger



Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
3 years ago
Thomas Eizinger a3f436104f
Use tokio-tar from crates.io 3 years ago
bors[bot] 5373f697ed
Merge #486 #508
486: Update metadata and remove outdated config files / READMEs r=thomaseizinger a=thomaseizinger



508: Remove tokio-tar from workspace in favor of git dependency r=thomaseizinger a=thomaseizinger

Fixes #315.
Fixes #227.

The upstream PR that upgrades to tokio v1 got merged, hence we can at least point to the git dependency for now and remove that later once it has been released to crates.io

Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
3 years ago
bors[bot] 08c527a723
Merge #510
510: Bump tokio-util from 0.6.6 to 0.6.7 r=thomaseizinger a=dependabot[bot]

Bumps [tokio-util](https://github.com/tokio-rs/tokio) from 0.6.6 to 0.6.7.
<details>
<summary>Commits</summary>
<ul>
<li><a href="deb1f98125"><code>deb1f98</code></a> chore: prepare tokio-util v0.6.7 (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3784">#3784</a>)</li>
<li><a href="3a659c47c3"><code>3a659c4</code></a> chore: prepare tokio-mcaros v1.2.0 (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3783">#3783</a>)</li>
<li><a href="580dc9594c"><code>580dc95</code></a> chore: prepare Tokio v1.6.0 (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3782">#3782</a>)</li>
<li><a href="8c395dfe61"><code>8c395df</code></a> io: impl AsyncSeek for BufReader/BufWriter/BufStream (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3491">#3491</a>)</li>
<li><a href="e188e99ca3"><code>e188e99</code></a> process: avoid redundant effort to reap orphan processes (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3743">#3743</a>)</li>
<li><a href="0b93bd511d"><code>0b93bd5</code></a> net: support non-blocking vectored I/O (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3761">#3761</a>)</li>
<li><a href="d846bf24b1"><code>d846bf2</code></a> sync: Barrier doc should use task, not thread (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3780">#3780</a>)</li>
<li><a href="9ff7d8c352"><code>9ff7d8c</code></a> net: hide net::unix::datagram module from docs (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3775">#3775</a>)</li>
<li><a href="8324317005"><code>8324317</code></a> doc: fix doc-cfg on io::duplex, io::copy_bidirectional, and task::unconstrain...</li>
<li><a href="7207e3ca43"><code>7207e3c</code></a> signal: use std::os::raw::c_int instead of libc::c_int on public API (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3774">#3774</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/tokio-rs/tokio/compare/tokio-util-0.6.6...tokio-util-0.6.7">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tokio-util&package-manager=cargo&previous-version=0.6.6&new-version=0.6.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
3 years ago
bors[bot] c665ab1f26
Merge #509
509: Bump tokio from 1.5.0 to 1.6.0 r=thomaseizinger a=dependabot[bot]

Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.5.0 to 1.6.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/tokio-rs/tokio/releases">tokio's releases</a>.</em></p>
<blockquote>
<h2>Tokio v1.6.0</h2>
<h1>1.6.0 (May 14, 2021)</h1>
<h3>Added</h3>
<ul>
<li>fs: try doing a non-blocking read before punting to the threadpool (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3518">#3518</a>)</li>
<li>io: add <code>write_all_buf</code> to <code>AsyncWriteExt</code> (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3737">#3737</a>)</li>
<li>io: implement <code>AsyncSeek</code> for <code>BufReader</code>, <code>BufWriter</code>, and <code>BufStream</code> (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3491">#3491</a>)</li>
<li>net: support non-blocking vectored I/O (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3761">#3761</a>)</li>
<li>sync: add <code>mpsc::Sender::{reserve_owned, try_reserve_owned}</code> (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3704">#3704</a>)</li>
<li>sync: add a <code>MutexGuard::map</code> method that returns a <code>MappedMutexGuard</code> (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/2472">#2472</a>)</li>
<li>time: add getter for Interval's period (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3705">#3705</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>io: wake pending writers on <code>DuplexStream</code> close (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3756">#3756</a>)</li>
<li>process: avoid redundant effort to reap orphan processes (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3743">#3743</a>)</li>
<li>signal: use <code>std::os::raw::c_int</code> instead of <code>libc::c_int</code> on public API (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3774">#3774</a>)</li>
<li>sync: preserve permit state in <code>notify_waiters</code> (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3660">#3660</a>)</li>
<li>task: update <code>JoinHandle</code> panic message (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3727">#3727</a>)</li>
<li>time: prevent <code>time::advance</code> from going too far (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3712">#3712</a>)</li>
</ul>
<h3>Documented</h3>
<ul>
<li>net: hide <code>net::unix::datagram</code> module from docs (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3775">#3775</a>)</li>
<li>process: updated example (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3748">#3748</a>)</li>
<li>sync: <code>Barrier</code> doc should use task, not thread (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3780">#3780</a>)</li>
<li>task: update documentation on <code>block_in_place</code> (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3753">#3753</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="580dc9594c"><code>580dc95</code></a> chore: prepare Tokio v1.6.0 (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3782">#3782</a>)</li>
<li><a href="8c395dfe61"><code>8c395df</code></a> io: impl AsyncSeek for BufReader/BufWriter/BufStream (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3491">#3491</a>)</li>
<li><a href="e188e99ca3"><code>e188e99</code></a> process: avoid redundant effort to reap orphan processes (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3743">#3743</a>)</li>
<li><a href="0b93bd511d"><code>0b93bd5</code></a> net: support non-blocking vectored I/O (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3761">#3761</a>)</li>
<li><a href="d846bf24b1"><code>d846bf2</code></a> sync: Barrier doc should use task, not thread (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3780">#3780</a>)</li>
<li><a href="9ff7d8c352"><code>9ff7d8c</code></a> net: hide net::unix::datagram module from docs (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3775">#3775</a>)</li>
<li><a href="8324317005"><code>8324317</code></a> doc: fix doc-cfg on io::duplex, io::copy_bidirectional, and task::unconstrain...</li>
<li><a href="7207e3ca43"><code>7207e3c</code></a> signal: use std::os::raw::c_int instead of libc::c_int on public API (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3774">#3774</a>)</li>
<li><a href="312321cbd3"><code>312321c</code></a> chore: enable syntax highlighting for toml in readme</li>
<li><a href="17c7ce616c"><code>17c7ce6</code></a> benches: fix build error (<a href="https://github-redirect.dependabot.com/tokio-rs/tokio/issues/3769">#3769</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/tokio-rs/tokio/compare/tokio-1.5.0...tokio-1.6.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tokio&package-manager=cargo&previous-version=1.5.0&new-version=1.6.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
3 years ago
dependabot[bot] c16e06e16e
Bump tokio-util from 0.6.6 to 0.6.7
Bumps [tokio-util](https://github.com/tokio-rs/tokio) from 0.6.6 to 0.6.7.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-util-0.6.6...tokio-util-0.6.7)

Signed-off-by: dependabot[bot] <support@github.com>
3 years ago
dependabot[bot] 020cc3d78c
Bump tokio from 1.5.0 to 1.6.0
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.5.0 to 1.6.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.5.0...tokio-1.6.0)

Signed-off-by: dependabot[bot] <support@github.com>
3 years ago
Thomas Eizinger 75c5db53b2
Remove tokio-tar from workspace in favor of git dependency
Fixes #315.
Fixes #227.
3 years ago
Thomas Eizinger 2f2b3b8a19
Update metadata and remove outdated config files / READMEs 3 years ago
bors[bot] b4143637aa
Merge #500
500: Bump sha2 from 0.9.4 to 0.9.5 r=thomaseizinger a=dependabot[bot]

Bumps [sha2](https://github.com/RustCrypto/hashes) from 0.9.4 to 0.9.5.
<details>
<summary>Commits</summary>
<ul>
<li><a href="06586d8ee8"><code>06586d8</code></a> sha-1 v0.9.6 (<a href="https://github-redirect.dependabot.com/RustCrypto/hashes/issues/271">#271</a>)</li>
<li><a href="ca27667a75"><code>ca27667</code></a> sha1+sha2: use cpufeatures v0.1.1 crate release (<a href="https://github-redirect.dependabot.com/RustCrypto/hashes/issues/269">#269</a>)</li>
<li><a href="12493fc7af"><code>12493fc</code></a> sha1: use <code>cpufeatures</code> to detect SHA-1 on <code>aarch64</code> (<a href="https://github-redirect.dependabot.com/RustCrypto/hashes/issues/268">#268</a>)</li>
<li><a href="d13936a82a"><code>d13936a</code></a> sha2: use <code>cpufeatures</code> to detect <code>sha2</code> on <code>aarch64</code> (<a href="https://github-redirect.dependabot.com/RustCrypto/hashes/issues/267">#267</a>)</li>
<li><a href="15a0468e98"><code>15a0468</code></a> sha2: fix missing documentation on compression functions (<a href="https://github-redirect.dependabot.com/RustCrypto/hashes/issues/266">#266</a>)</li>
<li>See full diff in <a href="https://github.com/RustCrypto/hashes/compare/sha2-v0.9.4...sha2-v0.9.5">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sha2&package-manager=cargo&previous-version=0.9.4&new-version=0.9.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
3 years ago
bors[bot] 849cda9994
Merge #505
505: Bump serde from 1.0.125 to 1.0.126 r=thomaseizinger a=dependabot[bot]

Bumps [serde](https://github.com/serde-rs/serde) from 1.0.125 to 1.0.126.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/serde/releases">serde's releases</a>.</em></p>
<blockquote>
<h2>v1.0.126</h2>
<ul>
<li>Resolve conflict with <code>forbid(future_incompatible)</code> lint setting in generated code (<a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2026">#2026</a>, thanks <a href="https://github.com/hyd-dev"><code>@​hyd-dev</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="d9c338ec4a"><code>d9c338e</code></a> Release 1.0.126</li>
<li><a href="699bf3a75d"><code>699bf3a</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2026">#2026</a> from hyd-dev/warning</li>
<li><a href="dd29825217"><code>dd29825</code></a> Allow only <code>unused_extern_crates</code> instead of the whole <code>rust_2018_idioms</code> lin...</li>
<li><a href="6366f17da7"><code>6366f17</code></a> Ignore clone_instead_of_copied pedantic clippy lint</li>
<li><a href="1120e5af4a"><code>1120e5a</code></a> Remove suppression of removed clippy lint</li>
<li><a href="1093f7e232"><code>1093f7e</code></a> Resolve flat_map_option pedantic clippy lint</li>
<li><a href="2ea132b8c4"><code>2ea132b</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/2018">#2018</a> from dtolnay/nonascii</li>
<li><a href="2ebc771b88"><code>2ebc771</code></a> Remove non_ascii_idents feature gate from test suite</li>
<li><a href="c17c4eef18"><code>c17c4ee</code></a> Unify stable and beta CI workflow</li>
<li><a href="7aa4950504"><code>7aa4950</code></a> Release serde_derive_internals 0.26.0</li>
<li>Additional commits viewable in <a href="https://github.com/serde-rs/serde/compare/v1.0.125...v1.0.126">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde&package-manager=cargo&previous-version=1.0.125&new-version=1.0.126)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
3 years ago
bors[bot] 270526f7e0
Merge #499
499: Bump futures from 0.3.14 to 0.3.15 r=thomaseizinger a=dependabot[bot]

Bumps [futures](https://github.com/rust-lang/futures-rs) from 0.3.14 to 0.3.15.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/rust-lang/futures-rs/releases">futures's releases</a>.</em></p>
<blockquote>
<h2>0.3.15</h2>
<ul>
<li>Use <code>#[proc_macro]</code> at Rust 1.45+ to fix an issue where proc macros don't work with rust-analyzer (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2407">#2407</a>)</li>
<li>Support targets that do not have atomic CAS on stable Rust (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2400">#2400</a>)</li>
<li>futures-test: Add async <code>#[test]</code> function attribute (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2409">#2409</a>)</li>
<li>Add <code>stream::abortable</code> (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2410">#2410</a>)</li>
<li>Add <code>FuturesUnordered::clear</code> (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2415">#2415</a>)</li>
<li>Implement <code>IntoIterator</code> for <code>FuturesUnordered</code> (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2423">#2423</a>)</li>
<li>Implement <code>Send</code> and <code>Sync</code> for <code>FuturesUnordered</code> iterators (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2416">#2416</a>)</li>
<li>Make <code>FuturesUnordered::iter_pin_ref</code> public (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2423">#2423</a>)</li>
<li>Add <code>SelectAll::clear</code> (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2430">#2430</a>)</li>
<li>Add <code>SelectAll::{iter, iter_mut}</code> (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2428">#2428</a>)</li>
<li>Implement <code>IntoIterator</code> for <code>SelectAll</code> (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2428">#2428</a>)</li>
<li>Implement <code>Clone</code> for <code>WeakShared</code> (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2396">#2396</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md">futures's changelog</a>.</em></p>
<blockquote>
<h1>0.3.15 - 2021-05-11</h1>
<ul>
<li>Use <code>#[proc_macro]</code> at Rust 1.45+ to fix an issue where proc macros don't work with rust-analyzer (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2407">#2407</a>)</li>
<li>Support targets that do not have atomic CAS on stable Rust (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2400">#2400</a>)</li>
<li>futures-test: Add async <code>#[test]</code> function attribute (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2409">#2409</a>)</li>
<li>Add <code>stream::abortable</code> (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2410">#2410</a>)</li>
<li>Add <code>FuturesUnordered::clear</code> (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2415">#2415</a>)</li>
<li>Implement <code>IntoIterator</code> for <code>FuturesUnordered</code> (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2423">#2423</a>)</li>
<li>Implement <code>Send</code> and <code>Sync</code> for <code>FuturesUnordered</code> iterators (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2416">#2416</a>)</li>
<li>Make <code>FuturesUnordered::iter_pin_ref</code> public (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2423">#2423</a>)</li>
<li>Add <code>SelectAll::clear</code> (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2430">#2430</a>)</li>
<li>Add <code>SelectAll::{iter, iter_mut}</code> (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2428">#2428</a>)</li>
<li>Implement <code>IntoIterator</code> for <code>SelectAll</code> (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2428">#2428</a>)</li>
<li>Implement <code>Clone</code> for <code>WeakShared</code> (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2396">#2396</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="fc080d153b"><code>fc080d1</code></a> Release 0.3.15 (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2436">#2436</a>)</li>
<li><a href="3d3b6642dd"><code>3d3b664</code></a> Remove extra text from test attribute docs (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2435">#2435</a>)</li>
<li><a href="5954cff771"><code>5954cff</code></a> futures-macro: improve diagnostics on type mismatch (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2433">#2433</a>)</li>
<li><a href="56bc87ef09"><code>56bc87e</code></a> Change SelectAll iterators to return stream instead of StreamFuture (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2431">#2431</a>)</li>
<li><a href="579b98b73d"><code>579b98b</code></a> Add SelectAll::clear (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2430">#2430</a>)</li>
<li><a href="d663bc1517"><code>d663bc1</code></a> expose iterators from SelectAll (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2428">#2428</a>)</li>
<li><a href="37d15b7528"><code>37d15b7</code></a> Abortable streams (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2410">#2410</a>)</li>
<li><a href="5912e2e8b1"><code>5912e2e</code></a> Add FuturesUnordered::clear (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2415">#2415</a>)</li>
<li><a href="48d65c33e7"><code>48d65c3</code></a> add FuturesUnordered::into_iter, make iter_pin_ref public (<a href="https://github-redirect.dependabot.com/rust-lang/futures-rs/issues/2423">#2423</a>)</li>
<li><a href="aa39d144fd"><code>aa39d14</code></a> Rename Take::limit_ field to limit</li>
<li>Additional commits viewable in <a href="https://github.com/rust-lang/futures-rs/compare/0.3.14...0.3.15">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=futures&package-manager=cargo&previous-version=0.3.14&new-version=0.3.15)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
3 years ago