Files
cuprate-for-explorer/helper
SyntheticBird a23ca6f730 P2P: Abstract TCP methods under the Transport Trait. (#446)
Abstract TCP methods under the Transport Trait.

In workspace:
- Added a new `cuprate-p2p-transport` crate that will later welcome
complex or crate dependent transport implementations. (Arti for example.)

In `cuprate-p2p-core`:
- Implemented a new Transport trait that abstract methods to listen
for or connect to other peers over a NetworkZone Z.
- Reduced `NetworkZone` trait accordingly.
- Added a new `BROADCAST_OWN_ADDR` to `NetworkZone` for anonymized
networks.
- Implemented `Tcp` transport for `ClearNet`.
- Implemented `Dummy` transport for placeholder/testing purposes
- Adapted definition of P2P components to the new `Transport` trait.
- Changed original `InBoundStream` implementation to support two
different but optional listeners (IPv4/IPv6)

In `p2p-core/tests`:
- Implemented `FragTcp` for fragmented message testing

In `cuprated`:
- Added `p2p.enable_inbound_v6` and `listen_on_v6` config field.
- Added `From<&ClearNetConfig>` for `TransportConfig<ClearNet, Tcp>`.
- Abstracted original `start_clearnet_p2p` to `start_zone_p2p` with a
given `NetworkZone` and `Transport`.
- Zone/NetworkInterface<Z> P2P initialization has been moved to `cuprated::p2p` in
`initialize_zones_p2p` fn.
- Defined `NetworkInterfaces` collection (useless at the moment).
2025-05-10 14:22:19 +01:00
..
2025-04-08 17:09:43 +01:00

Helper

helper/ is the kitchen-sink crate for very generic, not necessarily Cuprate specific functions, types, etc.

This allows all workspace crates to share, and aids compile times.

If a 3rd party's crate/functions/types are small enough, it could be moved here to trim dependencies and allow easy modifications.

Features

Modules can be selectively used/compiled with cargo's --feature or features = ["..."].

All features are off by default.

See Cargo.toml's [features] table to see what features there are and what they enable.

Special non-module related features:

  • serde: Enables serde implementations on applicable types
  • std: Enables usage of std

#[no_std]

Each modules documents whether it requires std or not.

If a module that requires std is enabled, helper will automatically use std.