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
João Oliveira
08510dd523
mdns: update if-watch to 3.0.0 ( #3096 )
2022-11-18 01:12:23 +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
Hannes
87ab49e812
protocols/mdns: Update to if-watch v2.0.0 ( #2978 )
2022-10-05 21:23:50 +01:00
Thomas Eizinger
1b793242e6
.cargo: Run clippy
on ALL the source files ( #2949 )
2022-10-04 18:24:38 +11:00
Yolier Galan Tasse
89f898c69f
protocols/mdns: Allow users to choose between async-io and tokio runtime ( #2748 )
...
Allow users to choose between async-io and tokio runtime
in the mdns protocol implementation. `async-io` is a default
feature, with an additional `tokio` feature.
Fix high CPU usage with Tokio library.
2022-09-02 05:53:38 +02:00