Thomas Eizinger
475dc80a07
refactor!: Move ConnectionId
and PendingPoint
to libp2p-swarm
( #3346 )
...
Both of these are only needed as part of `libp2p-swarm`. Them residing in `libp2p-core` is a left-over from when `libp2p-core` still contained `Pool`.
2023-01-18 08:56:32 +00:00
Thomas Eizinger
db2cd43826
refactor(core)!: remove EitherUpgrade
( #3339 )
...
We don't need to define our own type here, we can simply implement `UpgradeInfo`, `InboundUpgrade` and `OutboundUpgrade` on `either::Either`.
2023-01-18 02:35:07 +00:00
Thomas Eizinger
c18939f8dc
refactor(core)!: remove EitherTransport
( #3338 )
...
We don't need to define our own type here, we can simply implement `Transport` on `either::Either`.
2023-01-18 00:58:09 +00:00
Thomas Eizinger
f4fed3880b
refactor(core)!: remove EitherError
in favor of either::Either
( #3337 )
...
Defining our own `EitherError` type has no value now that `Either` provides the same implementation.
Related: https://github.com/libp2p/rust-libp2p/issues/3271
2023-01-17 23:05:59 +00:00
dependabot[bot]
1b4624f74a
deps: Update base64 requirement from 0.13.0 to 0.20.0 ( #3226 )
2022-12-21 03:35:25 +00:00
Pasha Podolsky
929cbb4670
deps!: Update multiaddr & multihash to 0.17.0 ( #3196 )
2022-12-20 08:52:08 +00:00
Thomas Eizinger
8c139f2d3b
chore: apply suggestions from beta clippy ( #3251 )
2022-12-17 02:01:45 +00:00
Roland Kuhn
c1e68b75c0
feat(core): Log protocol upgrades on trace ( #3128 )
...
Previously, every inbound or outbound upgrade generated a log at `debug` level, without information about the upgrade.
This commit changes it such that successful upgrades are logged at `trace` level (due to ubiquitous use of OneShot handlers) and that the negotiated protocol name is included in the message.
2022-12-14 18:04:50 +00:00
Hannes
d79c93abdb
chore: Implement latest clippy warnings ( #3220 )
...
As I do frequently, I corrected for the latest clippy warnings. This will make sure the CI won't complain in the future. We could automate this btw and maybe run the nightly version of clippy.
2022-12-14 15:45:04 +00:00
João Oliveira
7dedc351d7
fix: feature-gate symbols to resolve dead-code warning ( #3175 )
2022-12-13 01:33:00 +00:00
Thomas Eizinger
d7363a53d3
fix: Remove circular dependencies across workspace ( #3023 )
...
Circular dependencies are problematic in several ways:
- They result in cognitive overhead for developers, in trying to figure out what depends on what.
- They present `cargo` with limits in what order the crates can be compiled in.
- They invalidate build caches unnecessarily thus forcing `cargo` to rebuild certain crates.
- They cause problems with tooling such as `release-please`.
To actually break the circular dependencies, this patch inlines the uses of `development_transport` in the examples and tests for all sub-crates. This is only meant to be a short-term fix until https://github.com/libp2p/rust-libp2p/issues/3111 and https://github.com/libp2p/rust-libp2p/pull/2888 are fixed.
To ensure we don't accidentally reintroduce this dependency, we add a basic CI that queries `cargo metadata` using `jq`.
Resolves https://github.com/libp2p/rust-libp2p/issues/3053 .
Fixes https://github.com/libp2p/rust-libp2p/issues/3223 .
Related: https://github.com/libp2p/rust-libp2p/pull/2918#discussion_r976514245
Related: https://github.com/googleapis/release-please/issues/1662
2022-12-12 20:58:01 +00:00
Max Inden
87308f0bc8
chore: Prepare rust-libp2p v0.50.0 release ( #3163 )
2022-11-25 09:37:55 +00:00
Thomas Eizinger
2c96d644f9
feat: Better error reporting when features are disabled ( #2972 )
...
In case support for e.g. RSA keys is disabled at compile-time, we will now print a better error message. For example:
> Failed to dial Some(PeerId("QmcZf59bWwK5XFi76CZX8cbJ4BhTzzA3gU1ZjYZcYW3dwt")): Failed to negotiate transport protocol(s): [(/dnsaddr/bootstrap.libp2p.io/p2p/QmcZf59bWwK5XFi76CZX8cbJ4BhTzzA3gU1ZjYZcYW3dwt): : Handshake failed: Handshake failed: Invalid public key: Key decoding error: RSA keys are unsupported)]
Fixes #2971 .
2022-11-23 00:51:47 +00:00
Thomas Eizinger
0c85839dab
.github/workflows: Refactor CI jobs ( #3090 )
...
We refactor our continuous integration workflow with the following goals in mind:
- Run as few jobs as possible
- Have the jobs finish as fast as possible
- Have the jobs redo as little work as possible
There are only so many jobs that GitHub Actions will run in parallel.
Thus, it makes sense to not create massive matrices but instead group
things together meaningfully.
The new `test` job will:
- Run once for each crate
- Ensure that the crate compiles on its specified MSRV
- Ensure that the tests pass
- Ensure that there are no semver violations
This is an improvement to before because we are running all of these
in parallel which speeds up execution and highlights more errors at
once. Previously, tests run later in the pipeline would not get run
at all until you make sure the "first" one passes.
We also previously did not verify the MSRV of each crate, making the
setting in the `Cargo.toml` rather pointless.
The new `cross` job supersedes the existing `wasm` job.
This is an improvement because we now also compile the crate for
windows and MacOS. Something that wasn't checked before.
We assume that checking MSRV and the tests under Linux is good enough.
Hence, this job only checks for compile-errors.
The new `feature_matrix` ensures we compile correctly with certain feature combinations.
`libp2p` exposes a fair few feature-flags. Some of the combinations
are worth checking independently. For the moment, this concerns only
the executor related transports together with the executor flags but
this list can easily be extended.
The new `clippy` job runs for `stable` and `beta` rust.
Clippy gets continuously extended with new lints. Up until now, we would only
learn about those as soon as a new version of Rust is released and CI would
run the new lints. This leads to unrelated failures in CI. Running clippy on with `beta`
Rust gives us a heads-up of 6 weeks before these lints land on stable.
Fixes #2951 .
2022-11-18 11:04:16 +00:00
Hannes
d5ea93dd71
feat(swarm): Make executor for connection tasks explicit ( #3097 )
...
Previously, the executor for connection tasks silently defaulted to a `futures::executor::ThreadPool`. This causes issues such as https://github.com/libp2p/rust-libp2p/issues/2230 .
With this patch, we force the user to choose, which executor they want to run the connection tasks on which results in overall simpler API with less footguns.
Closes #3068 .
2022-11-15 14:26:03 +00:00
Matthias Beyer
ca8bcd8288
core: Expose peer_id::ParseError
( #3113 )
2022-11-15 11:58:42 +00:00
yojoe
368705a146
docs(core): Document byte format of PeerId
( #3084 )
...
PeerId data is more than just a multihash of the public key.
See discussion: https://github.com/libp2p/rust-libp2p/discussions/3079
2022-11-15 01:22:11 +00:00
Hannes
7daa0c1145
*: Remove lazy_static in favor of once_cell ( #3110 )
2022-11-14 04:24:52 +00:00
Elena Frank
8b378d56d3
deps: Update to multiaddr v0.16.0 ( #3117 )
2022-11-13 23:38:27 +01:00
Hannes
c32f03c317
*: Fix newly raised clippy warnings ( #3106 )
...
Fixed minor issues raised by clippy to improve correctness and readablitity.
2022-11-11 20:30:58 +00:00
João Oliveira
280c51ef83
*: Link to libp2p/specs in doc comments ( #3077 )
2022-11-04 10:32:41 +00:00
Thomas Eizinger
df659e5bcd
core/muxer: Remove deprecated functions ( #3031 )
2022-11-02 15:09:12 +00:00
dependabot[bot]
ee5c9b7202
build(deps): Update multiaddr requirement from 0.14.0 to 0.15.0 ( #3051 )
...
Updates the requirements on [multiaddr](https://github.com/multiformats/rust-multiaddr ) to permit the latest version.
- [Release notes](https://github.com/multiformats/rust-multiaddr/releases )
- [Changelog](https://github.com/multiformats/rust-multiaddr/blob/master/CHANGELOG.md )
- [Commits](https://github.com/multiformats/rust-multiaddr/compare/v0.14.0...v0.15.0 )
---
updated-dependencies:
- dependency-name: multiaddr
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-02 12:57:21 +00:00
Thomas Eizinger
71131e0622
*: Don't leak prost
dependency in error types ( #3058 )
...
With the current design, a major version bump of `prost` leaks into
all consumers of `prost-codec`.
2022-11-02 12:02:21 +00:00
Hannes
fcadc83aca
*: Use auto_doc_cfg
instead of doc(cfg)
attributes ( #2983 )
...
Co-authored-by: João Oliveira <hello@jxs.pt>
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2022-10-24 13:00:20 +11:00
Max Inden
d530e5112c
*: Prepare v0.49.0 ( #2931 )
2022-10-14 15:30:16 +01:00
Thomas Eizinger
f711dd5ce0
core/muxer: Deprecate StreamMuxerExt::next_{inbound,outbound}
( #3002 )
2022-10-12 13:36:39 +01:00
Elena Frank
aba5ccbce3
core/transport: Improve docs for Transport::address_translation
( #2976 )
2022-10-09 21:53:17 +01:00
Thomas Eizinger
215a8e12f3
{core,muxers/mplex}: Fix bad version bump ( #2960 )
2022-10-04 12:04:42 +01:00
Thomas Eizinger
1b793242e6
.cargo: Run clippy
on ALL the source files ( #2949 )
2022-10-04 18:24:38 +11:00
Thomas Eizinger
f6bb846c36
*: Remove default features from all crates ( #2918 )
...
Remove default features. You need to enable required features
explicitly now. As a quick workaround, you may want to use the
new `full` feature which activates all features.
2022-09-29 16:32:22 +01:00
Friedel Ziegelmayer
c71115d055
misc/multistream-select/: Remove parallel dialing optimization ( #2934 )
...
This is to avoid the usage of the now optional `ls` command, and
stay compatible with go-multistream.
Closes #2925
2022-09-29 14:36:11 +01:00
futpib
bcff814b92
core/identity: Implement Hash
and Ord
for PublicKey ( #2915 )
...
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2022-09-22 19:35:42 +02:00
Roman
e530118fb0
build(deps): Bump rand to 0.8 and quickcheck to 1 ( #2857 )
...
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
Co-authored-by: Max Inden <mail@max-inden.de>
2022-09-22 18:48:32 +10:00
Thomas Eizinger
45faefa36c
*: Unfiy how we depend on crates across the workspace ( #2886 )
2022-09-19 17:32:02 +10:00
Thomas Eizinger
2c739e9bdb
protocols/noise: Introduce NoiseAuthenticated::xx
constructor with X25519 DH key exchange ( #2887 )
...
Co-authored-by: Max Inden <mail@max-inden.de>
2022-09-16 11:41:35 +10:00
Roman
72bade1799
build(deps): Update env_logger to 0.9 and criterion to 0.4 ( #2896 )
2022-09-14 13:01:41 +10:00
Alexander Shishenko
c650dc19db
*: Replace _serde with dep:serde in Cargo.toml ( #2868 )
2022-09-08 18:30:43 +10:00
Max Inden
83c67954e9
*: Prepare v0.48.0 ( #2869 )
2022-09-07 09:44:51 +02:00
Thomas Eizinger
2eca38cca0
core/upgrade/: Add ReadyUpgrade
( #2855 )
2022-09-07 09:08:23 +02:00
Alexander Shishenko
8644c65a22
core/: Introduce rsa
feature flag to avoid ring
dependency ( #2860 )
...
- Introduce `rsa` feature flag to `libp2p-core`.
- Expose `rsa` feature in `libp2p`.
- Add `rsa` feature to `libp2p` `default`.
2022-09-07 08:16:22 +02:00
Divma
36a2773861
*: Update changelogs for prost dep update ( #2851 )
2022-08-30 10:03:54 +02:00
dependabot[bot]
d92cab8581
build(deps): Update p256 requirement from 0.10.0 to 0.11.0 ( #2636 )
...
* build(deps): Update p256 requirement from 0.10.0 to 0.11.0
Updates the requirements on [p256](https://github.com/RustCrypto/elliptic-curves ) to permit the latest version.
- [Release notes](https://github.com/RustCrypto/elliptic-curves/releases )
- [Commits](https://github.com/RustCrypto/elliptic-curves/commits/p256/v0.10.1 )
---
updated-dependencies:
- dependency-name: p256
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
* core/: Bump version and add changelog entry
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Max Inden <mail@max-inden.de>
2022-08-23 09:51:58 +02:00
Max Inden
4253080a43
*: Prepare v0.47.0 ( #2830 )
2022-08-22 05:14:04 +02:00
Elena Frank
8931860b2f
core/identity: Allow clippy::large-enum-variant on Keypair
( #2827 )
2022-08-19 05:06:55 +02:00
Max Inden
8dc0188a1d
swarm/src/connection: Test max_negotiating_inbound_streams ( #2785 )
...
Test that `HandlerWrapper` upholds the provided
`max_negotiating_inbound_streams` limit.
2022-08-16 10:15:31 +02:00
dependabot[bot]
6a9fa3d930
build(deps): Update prost requirement from 0.10 to 0.11 ( #2788 )
...
* build(deps): Update prost-build requirement from 0.10 to 0.11
Updates the requirements on [prost-build](https://github.com/tokio-rs/prost ) to permit the latest version.
- [Release notes](https://github.com/tokio-rs/prost/releases )
- [Commits](https://github.com/tokio-rs/prost/compare/v0.10.0...v0.11.0 )
---
updated-dependencies:
- dependency-name: prost-build
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
* build(deps): Update prost requirement from 0.10 to 0.11
Updates the requirements on [prost](https://github.com/tokio-rs/prost ) to permit the latest version.
- [Release notes](https://github.com/tokio-rs/prost/releases )
- [Commits](https://github.com/tokio-rs/prost/compare/v0.10.0...v0.11.0 )
---
updated-dependencies:
- dependency-name: prost
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-16 08:49:09 +02:00
Thomas Eizinger
cef505685c
core/muxing: Generalise StreamMuxer::poll_address_change
to poll
( #2797 )
...
This is to allow general-purpose background work to be performed
by implementations.
2022-08-16 04:50:17 +02:00
Elena Frank
06aaea67f3
*: Fix clippy::derive-partial-eq-without-eq
( #2818 )
2022-08-14 04:03:04 +02:00
Thomas Eizinger
028decec69
core/muxing: Have functions on StreamMuxer
take Pin<&mut Self>
( #2765 )
...
Co-authored-by: Elena Frank <elena.frank@protonmail.com>
Co-authored-by: Max Inden <mail@max-inden.de>
2022-08-03 23:12:11 +10:00