2044 Commits

Author SHA1 Message Date
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
Matthias Beyer
e2737c7b71
protocols/kad: Expose NoKnownPeers (#3114) 2022-11-13 22:08:28 +00:00
Thomas Eizinger
cafa73444b
.github/: Use Description for commit message and add Notes (#3082) 2022-11-13 20:01:24 +01:00
Thomas Eizinger
afb777e937
swarm-derive: Add prelude configuration option to NetworkBehaviour macro (#3055)
Currently, our `NetworkBehaviour` derive macro depends on the `libp2p` crate to be in scope. This prevents standalone usage which forces us to depend on `libp2p` in all our tests where we want to derive a `NetworkBehaviour`.

This PR introduces a `prelude` option that - by default - points to `libp2p::swarm::derive_prelude`, a new module added to `libp2p_swarm`. With this config option, users of `libp2p_swarm` can now refer to the macro without depending on `libp2p`, breaking the circular dependency in our workspace. For consistency with the ecosystem, the macro is now also re-exported by `libp2p_swarm` instead of `libp2p` at the same position as the trait that it implements.

Lastly, we introduce an off-by-default `macros` feature flag that shrinks the dependency tree for users that don't need the derive macro.
2022-11-12 23:59:14 +00: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
Steve Loeppky
90df86d9e7
Update ROADMAP.md based on previous feedback. (#3091)
Co-authored-by: Prithvi Shahi <shahi.prithvi@gmail.com>
2022-11-10 11:08:00 -08:00
dependabot[bot]
e1e6413fc0
build(deps): Bump Swatinem/rust-cache from 2.1.0 to 2.2.0 (#3104) 2022-11-10 12:14:17 +00:00
dependabot[bot]
313ed588fe
build(deps): Bump Swatinem/rust-cache from 2.0.1 to 2.1.0 (#3093) 2022-11-08 08:23:07 +00:00
efarg
ba14ffdd42
protocols/identify: Change default cache_size of Config to 100 (#2995)
`Config` struct's member `cache_size` now defaults to `100`.
2022-11-04 19:40:30 +00:00
João Oliveira
280c51ef83
*: Link to libp2p/specs in doc comments (#3077) 2022-11-04 10:32:41 +00:00
Nick Loadholtes
1ba9e4579d
protocols/gossipsub: Make use of prost-codec (#3070) 2022-11-04 10:12:08 +00:00
Thomas Eizinger
b528d336cd
*: Fix clippy warnings introduced by Rust 1.65 release (#3081) 2022-11-04 09:40:09 +00:00
dependabot[bot]
f9b4af3d9d
build(deps): Update rcgen requirement from 0.9.2 to 0.10.0 (#3059) 2022-11-03 01:40:53 +00:00
Thomas Eizinger
95e27ece8e
.github: Add mergify configuration (#3026) 2022-11-03 12:25:12 +11:00
Thomas Eizinger
53d445e61c
protocols/kademlia: Refactor stream state machines (#3074)
* Refactor `InboundSubstreamState` to implement `Stream`

This allows us to use `stream::SelectAll` instead of iterating
through the states ourselves. It also allows us to fix an existing
TODO where we don't properly close a stream.

* Refactor `OutboundSubstreamState` to implement `Stream`

* Remove unnecessary keep_alive changes

The same thing is happening further down.

* Remove code duplication in answering requests

* Debug assert that we can answer every request
2022-11-02 19:20:55 +00:00
Thomas Eizinger
f4ce1fe9ae
swarm/pool: Misc refactoring (#3073)
* Remove unreachable error case

Instead of taking the connection out of the map again, construct
the event to be returned with the data we already have available.

* Remove `Pool::get` and `PoolConnection`

These are effectively not used.

* Replace `iter_pending_info` with its only usage: `is_dialing`

* Add `is_for_same_remote_as` convenience function

* Remove `PendingConnection`

* Rename `PendingConnectionInfo` to `PendingConnection`

With the latter being gone, the name is now free.

* Merge `EstablishedConnectionInfo` and `EstablishedConnection`

This is a leftover from when `Pool` was still in `libp2p-core` and
one of them was a public API and the other one wasn't.

All of this is private to `libp2p-swarm` so we no longer need to
differentiate.

* Don't `pub use` out of `pub(crate)` modules
2022-11-02 18:47:00 +00:00
João Oliveira
64e38bd6b4
swarm/: Link ThreadPool in documentation (#3067) 2022-11-02 15:09:55 +00:00
Thomas Eizinger
df659e5bcd
core/muxer: Remove deprecated functions (#3031) 2022-11-02 15:09:12 +00:00
João Oliveira
49679d31e7
swarm/CHANGELOG.md: Fix version mismatch with v0.40.1 (#3063) 2022-11-02 13:41:28 +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
Max Inden
b42f28630e
ROADMAP: Follow ups on recent review (#3062)
* ROADMAP: Remove project board for now

* ROADMAP: Encourage feedback

* ROADMAP: Remove TLS

* ROADMAP: Link to specs/ROADMAP.md

* ROADMAP: Prioritize QUIC beyond the first iteration

* ROADMAP: No longer mark QUIC as experimental
2022-10-26 10:20:34 +01:00
Andrew Mackenzie
5bce6edff9
examples/gossipsub-chat: Add mDNS peer discovery (#2996)
Co-authored-by: João Oliveira <hello@jxs.pt>
Co-authored-by: Max Inden <mail@max-inden.de>
2022-10-26 11:43:14 +11:00
Thomas Eizinger
437b387159
CHANGELOG.md: Move libp2p-tls to correct version (#3057)
Co-authored-by: Max Inden <mail@max-inden.de>
2022-10-25 22:09:46 +11:00
Thomas Eizinger
4d1b165982
transports/tcp: Unify symbol naming (#2961)
Co-authored-by: Elena Frank <elena.frank@protonmail.com>
2022-10-24 15:41:08 +11: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
Thomas Eizinger
159a10b812
transports/tls: Add libp2p-tls as per spec (#2945)
Co-authored-by: David Craven <david@craven.ch>
Co-authored-by: Demi Marie Obenour <demiobenour@gmail.com>
Co-authored-by: Elena Frank <elena.frank@protonmail.com>
Co-authored-by: Max Inden <mail@max-inden.de
Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>
Co-authored-by: Roman Proskuryakov <r.proskuryakoff@gmail.com>
2022-10-24 11:54:44 +11:00
dependabot[bot]
a0adaf6a54
build(deps): Bump Swatinem/rust-cache from 2.0.0 to 2.0.1 (#3033)
* build(deps): Bump Swatinem/rust-cache from 2.0.0 to 2.0.1

Bumps [Swatinem/rust-cache](https://github.com/Swatinem/rust-cache) from 2.0.0 to 2.0.1.
- [Release notes](https://github.com/Swatinem/rust-cache/releases)
- [Changelog](https://github.com/Swatinem/rust-cache/blob/master/CHANGELOG.md)
- [Commits](6720f05bc4...22c9328bcb)

---
updated-dependencies:
- dependency-name: Swatinem/rust-cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Apply suggestions from code review

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-10-21 19:03:44 +01:00
dependabot[bot]
d10d433b9f
build(deps): Update ed25519-compact requirement from 1.0.11 to 2.0.2 (#3016)
Updates the requirements on [ed25519-compact](https://github.com/jedisct1/rust-ed25519-compact) to permit the latest version.
- [Release notes](https://github.com/jedisct1/rust-ed25519-compact/releases)
- [Commits](https://github.com/jedisct1/rust-ed25519-compact/compare/1.0.11...2.0.2)

---
updated-dependencies:
- dependency-name: ed25519-compact
  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>
Co-authored-by: Max Inden <mail@max-inden.de>
2022-10-21 16:18:35 +01:00
Max Inden
56a4a946c6
Roadmap.md: Discuss the near term future of rust-libp2p (#2997)
The items in this roadmap are ordered by importance where importance is defined as:

- Enable others to build with rust-libp2p before building components ourself.
  - e.g.[cross behaviour communication](#cross-behaviour-communication) over[Kademlia client
    mode](#kademlia-client-mode) where the former enables the latter
- Invest into tools that enable us to work more efficiently
  - e.g.[Testground](#testground-abstraction) and [release process](#release-process)
- Better do one thing well than many things close to right.
  - e.g. deprioritize [BitSwap implementation](#bitswap-implementation) and continue on
    [QUIC](#quic-support) even once first ieration is merged. That does not imply that we won't
    support community members implementing it.
- Improve existing components before introducing new ones.
  - e.g.[Kademlia client mode](#kademlia-client-mode) before [WebTransport](#webtransport)
2022-10-20 21:37:02 +01:00
Max Inden
cec1a8d26f
docs/release: Document cargo-release process and mention root changelog (#3028)
* docs/release: Document cargo-release process

* docs/release: Document update to root level changelog.md
2022-10-20 20:56:02 +01:00
João Oliveira
4a4d4ad5c9
protocols/identify: Fix Identify protocol link in module doc (#3047) 2022-10-20 14:59:30 +01:00
Thomas Eizinger
3e4a0640fd
Cargo.toml: Remove deprecated executor-specific features (#3001)
Co-authored-by: Max Inden <mail@max-inden.de>
2022-10-20 14:17:20 +11:00
Roland Kuhn
c84a0fb86b
swarm: Improve rendering of ConnectionLimit error (#3043) 2022-10-20 10:46:23 +11:00
Thomas Eizinger
4d4833f8c2
muxers: Add test harness for StreamMuxer implementations (#2952) 2022-10-17 11:23:13 +11:00
Thomas Eizinger
981d586bfe
.github/workflows: Don't allow concurrent workflow runs (#3000) 2022-10-15 15:38:53 +11:00
Max Inden
b5612dc431
transports/dns/: Don't feature flag std::io import (#3027)
Functions like `parse_dnsaddr_txt` depend on the `std::io` import. Given
that the function is not feature flagged, compilation without features
fails.
2022-10-14 16:55:50 +01:00
Max Inden
d530e5112c
*: Prepare v0.49.0 (#2931) 2022-10-14 15:30:16 +01:00
ControlCplusControlV
2c65b0a601
README: Add fuel-core as a notable user (#3003)
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2022-10-14 19:10:52 +11:00
Qinxuan Chen
d9a2e6c1bd
build(deps): Update clap to v4 (#3015) 2022-10-14 15:51:23 +11:00
Chad Nehemiah
3371d7ceab
.github/workflows: Enforce semver compliance with cargo semver-checks (#2647) 2022-10-12 20:42:44 +01:00
Thomas Eizinger
eb10af7a4b
protocols/{relay,dcutr}: Replace std::time::SystemTime with instant::SystemTime (#2991) 2022-10-12 14:09:47 +01:00
Thomas Eizinger
f711dd5ce0
core/muxer: Deprecate StreamMuxerExt::next_{inbound,outbound} (#3002) 2022-10-12 13:36:39 +01:00
Thomas Eizinger
eba2efe29a
protocols/noise: Inline handshake functions into upgrade traits (#2909)
- Remove `Deref` implementation on `AuthenticKeypair`.
- Make `handshake` module private.
- Deprecate `AuthenticKeypair::into_identity`.
2022-10-11 18:48:16 +01:00
Thomas Eizinger
31a45f2d76
Cargo.toml: Deprecate executor specific features for sub-crates (#2962) 2022-10-11 23:10:10 +11:00
Elena Frank
aba5ccbce3
core/transport: Improve docs for Transport::address_translation (#2976) 2022-10-09 21:53:17 +01:00
Thomas Eizinger
ba99464434
.github/workflows: Re-activate documentation of private items (#2990) 2022-10-09 21:30:53 +01:00
Hannes
ece25973d5
transport/pnet: Update salsa20 to 0.10 (#2989) 2022-10-08 17:13:00 +11:00
Hannes
87ab49e812
protocols/mdns: Update to if-watch v2.0.0 (#2978) 2022-10-05 21:23:50 +01:00