mirror of
https://github.com/fluencelabs/rust-libp2p
synced 2025-06-13 01:51:23 +00:00
Update protocols and transport to 2018 edition (#875)
Update the protocols and transport subdirectories to the 2018 edition. NB: The websocket transport cannot be moved to 2018 edition due to websocket-rs's use of the keyword async as the name of a module.
This commit is contained in:
committed by
Pierre Krieger
parent
a806c4ac08
commit
6d24596f9f
@ -1,5 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "libp2p-floodsub"
|
name = "libp2p-floodsub"
|
||||||
|
edition = "2018"
|
||||||
description = "Floodsub protocol for libp2p"
|
description = "Floodsub protocol for libp2p"
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
authors = ["Parity Technologies <admin@parity.io>"]
|
authors = ["Parity Technologies <admin@parity.io>"]
|
||||||
|
@ -157,7 +157,7 @@ where
|
|||||||
fn shutdown(&mut self) {
|
fn shutdown(&mut self) {
|
||||||
self.shutting_down = true;
|
self.shutting_down = true;
|
||||||
for n in (0..self.substreams.len()).rev() {
|
for n in (0..self.substreams.len()).rev() {
|
||||||
let mut substream = self.substreams.swap_remove(n);
|
let substream = self.substreams.swap_remove(n);
|
||||||
self.substreams.push(SubstreamState::Closing(substream.into_substream()));
|
self.substreams.push(SubstreamState::Closing(substream.into_substream()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,18 +18,18 @@
|
|||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
// DEALINGS IN THE SOFTWARE.
|
// DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
use crate::handler::FloodsubHandler;
|
||||||
|
use crate::protocol::{FloodsubMessage, FloodsubRpc, FloodsubSubscription, FloodsubSubscriptionAction};
|
||||||
|
use crate::topic::{Topic, TopicHash};
|
||||||
use cuckoofilter::CuckooFilter;
|
use cuckoofilter::CuckooFilter;
|
||||||
use futures::prelude::*;
|
use futures::prelude::*;
|
||||||
use handler::FloodsubHandler;
|
|
||||||
use libp2p_core::swarm::{ConnectedPoint, NetworkBehaviour, NetworkBehaviourAction, PollParameters};
|
use libp2p_core::swarm::{ConnectedPoint, NetworkBehaviour, NetworkBehaviourAction, PollParameters};
|
||||||
use libp2p_core::{protocols_handler::ProtocolsHandler, PeerId};
|
use libp2p_core::{protocols_handler::ProtocolsHandler, PeerId};
|
||||||
use protocol::{FloodsubMessage, FloodsubRpc, FloodsubSubscription, FloodsubSubscriptionAction};
|
|
||||||
use rand;
|
use rand;
|
||||||
use smallvec::SmallVec;
|
use smallvec::SmallVec;
|
||||||
use std::{collections::VecDeque, iter, marker::PhantomData};
|
use std::{collections::VecDeque, iter, marker::PhantomData};
|
||||||
use std::collections::hash_map::{DefaultHasher, HashMap};
|
use std::collections::hash_map::{DefaultHasher, HashMap};
|
||||||
use tokio_io::{AsyncRead, AsyncWrite};
|
use tokio_io::{AsyncRead, AsyncWrite};
|
||||||
use topic::{Topic, TopicHash};
|
|
||||||
|
|
||||||
/// Network behaviour that automatically identifies nodes periodically, and returns information
|
/// Network behaviour that automatically identifies nodes periodically, and returns information
|
||||||
/// about them.
|
/// about them.
|
||||||
@ -213,7 +213,7 @@ where
|
|||||||
) {
|
) {
|
||||||
// Update connected peers topics
|
// Update connected peers topics
|
||||||
for subscription in event.subscriptions {
|
for subscription in event.subscriptions {
|
||||||
let mut remote_peer_topics = self.connected_peers
|
let remote_peer_topics = self.connected_peers
|
||||||
.get_mut(&propagation_source)
|
.get_mut(&propagation_source)
|
||||||
.expect("connected_peers is kept in sync with the peers we are connected to; we are guaranteed to only receive events from connected peers; QED");
|
.expect("connected_peers is kept in sync with the peers we are connected to; we are guaranteed to only receive events from connected peers; QED");
|
||||||
match subscription.action {
|
match subscription.action {
|
||||||
|
@ -20,13 +20,13 @@
|
|||||||
|
|
||||||
use bytes::{BufMut, BytesMut};
|
use bytes::{BufMut, BytesMut};
|
||||||
use crate::rpc_proto;
|
use crate::rpc_proto;
|
||||||
|
use crate::topic::TopicHash;
|
||||||
use futures::future;
|
use futures::future;
|
||||||
use libp2p_core::{InboundUpgrade, OutboundUpgrade, UpgradeInfo, PeerId};
|
use libp2p_core::{InboundUpgrade, OutboundUpgrade, UpgradeInfo, PeerId};
|
||||||
use protobuf::Message as ProtobufMessage;
|
use protobuf::Message as ProtobufMessage;
|
||||||
use std::{io, iter};
|
use std::{io, iter};
|
||||||
use tokio_codec::{Decoder, Encoder, Framed};
|
use tokio_codec::{Decoder, Encoder, Framed};
|
||||||
use tokio_io::{AsyncRead, AsyncWrite};
|
use tokio_io::{AsyncRead, AsyncWrite};
|
||||||
use topic::TopicHash;
|
|
||||||
use unsigned_varint::codec;
|
use unsigned_varint::codec;
|
||||||
|
|
||||||
/// Implementation of `ConnectionUpgrade` for the floodsub protocol.
|
/// Implementation of `ConnectionUpgrade` for the floodsub protocol.
|
||||||
|
@ -19,8 +19,8 @@
|
|||||||
// DEALINGS IN THE SOFTWARE.
|
// DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
use bs58;
|
use bs58;
|
||||||
|
use crate::rpc_proto;
|
||||||
use protobuf::Message;
|
use protobuf::Message;
|
||||||
use rpc_proto;
|
|
||||||
|
|
||||||
/// Represents the hash of a topic.
|
/// Represents the hash of a topic.
|
||||||
///
|
///
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "libp2p-identify"
|
name = "libp2p-identify"
|
||||||
|
edition = "2018"
|
||||||
description = "Nodes identifcation protocol for libp2p"
|
description = "Nodes identifcation protocol for libp2p"
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
authors = ["Parity Technologies <admin@parity.io>"]
|
authors = ["Parity Technologies <admin@parity.io>"]
|
||||||
|
@ -20,13 +20,13 @@
|
|||||||
|
|
||||||
//! Contains the `IdentifyTransport` type.
|
//! Contains the `IdentifyTransport` type.
|
||||||
|
|
||||||
|
use crate::protocol::{RemoteInfo, IdentifyProtocolConfig};
|
||||||
use futures::{future, prelude::*, stream, AndThen, MapErr};
|
use futures::{future, prelude::*, stream, AndThen, MapErr};
|
||||||
use libp2p_core::{
|
use libp2p_core::{
|
||||||
Multiaddr, PeerId, PublicKey, muxing, Transport,
|
Multiaddr, PeerId, PublicKey, muxing, Transport,
|
||||||
transport::{TransportError, upgrade::TransportUpgradeError},
|
transport::{TransportError, upgrade::TransportUpgradeError},
|
||||||
upgrade::{self, OutboundUpgradeApply, UpgradeError}
|
upgrade::{self, OutboundUpgradeApply, UpgradeError}
|
||||||
};
|
};
|
||||||
use protocol::{RemoteInfo, IdentifyProtocolConfig};
|
|
||||||
use std::io::{Error as IoError, ErrorKind as IoErrorKind};
|
use std::io::{Error as IoError, ErrorKind as IoErrorKind};
|
||||||
use std::mem;
|
use std::mem;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
// DEALINGS IN THE SOFTWARE.
|
// DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
use bytes::BytesMut;
|
use bytes::BytesMut;
|
||||||
|
use crate::structs_proto;
|
||||||
use futures::{future::{self, FutureResult}, Async, AsyncSink, Future, Poll, Sink, Stream};
|
use futures::{future::{self, FutureResult}, Async, AsyncSink, Future, Poll, Sink, Stream};
|
||||||
use libp2p_core::{
|
use libp2p_core::{
|
||||||
Multiaddr, PublicKey,
|
Multiaddr, PublicKey,
|
||||||
@ -30,7 +31,6 @@ use protobuf::parse_from_bytes as protobuf_parse_from_bytes;
|
|||||||
use protobuf::RepeatedField;
|
use protobuf::RepeatedField;
|
||||||
use std::io::{Error as IoError, ErrorKind as IoErrorKind};
|
use std::io::{Error as IoError, ErrorKind as IoErrorKind};
|
||||||
use std::iter;
|
use std::iter;
|
||||||
use structs_proto;
|
|
||||||
use tokio_codec::Framed;
|
use tokio_codec::Framed;
|
||||||
use tokio_io::{AsyncRead, AsyncWrite};
|
use tokio_io::{AsyncRead, AsyncWrite};
|
||||||
use unsigned_varint::codec;
|
use unsigned_varint::codec;
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "libp2p-kad"
|
name = "libp2p-kad"
|
||||||
|
edition = "2018"
|
||||||
description = "Kademlia protocol for libp2p"
|
description = "Kademlia protocol for libp2p"
|
||||||
version = "0.2.1"
|
version = "0.2.1"
|
||||||
authors = ["Parity Technologies <admin@parity.io>"]
|
authors = ["Parity Technologies <admin@parity.io>"]
|
||||||
|
@ -18,20 +18,20 @@
|
|||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
// DEALINGS IN THE SOFTWARE.
|
// DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
use crate::handler::{KademliaHandler, KademliaHandlerEvent, KademliaHandlerIn, KademliaRequestId};
|
||||||
|
use crate::protocol::{KadConnectionType, KadPeer};
|
||||||
|
use crate::query::{QueryConfig, QueryState, QueryStatePollOut, QueryTarget};
|
||||||
|
use crate::topology::KademliaTopology;
|
||||||
use fnv::{FnvHashMap, FnvHashSet};
|
use fnv::{FnvHashMap, FnvHashSet};
|
||||||
use futures::{prelude::*, stream};
|
use futures::{prelude::*, stream};
|
||||||
use handler::{KademliaHandler, KademliaHandlerEvent, KademliaHandlerIn, KademliaRequestId};
|
|
||||||
use libp2p_core::swarm::{ConnectedPoint, NetworkBehaviour, NetworkBehaviourAction, PollParameters};
|
use libp2p_core::swarm::{ConnectedPoint, NetworkBehaviour, NetworkBehaviourAction, PollParameters};
|
||||||
use libp2p_core::{protocols_handler::ProtocolsHandler, topology::Topology, Multiaddr, PeerId};
|
use libp2p_core::{protocols_handler::ProtocolsHandler, topology::Topology, Multiaddr, PeerId};
|
||||||
use multihash::Multihash;
|
use multihash::Multihash;
|
||||||
use protocol::{KadConnectionType, KadPeer};
|
|
||||||
use query::{QueryConfig, QueryState, QueryStatePollOut, QueryTarget};
|
|
||||||
use rand;
|
use rand;
|
||||||
use smallvec::SmallVec;
|
use smallvec::SmallVec;
|
||||||
use std::{cmp::Ordering, marker::PhantomData, time::Duration, time::Instant};
|
use std::{cmp::Ordering, marker::PhantomData, time::Duration, time::Instant};
|
||||||
use tokio_io::{AsyncRead, AsyncWrite};
|
use tokio_io::{AsyncRead, AsyncWrite};
|
||||||
use tokio_timer::Interval;
|
use tokio_timer::Interval;
|
||||||
use topology::KademliaTopology;
|
|
||||||
|
|
||||||
/// Network behaviour that handles Kademlia.
|
/// Network behaviour that handles Kademlia.
|
||||||
pub struct Kademlia<TSubstream> {
|
pub struct Kademlia<TSubstream> {
|
||||||
@ -178,7 +178,7 @@ impl<TSubstream> Kademlia<TSubstream> {
|
|||||||
|
|
||||||
match query {
|
match query {
|
||||||
QueryTarget::FindPeer(key) => {
|
QueryTarget::FindPeer(key) => {
|
||||||
let mut topology = parameters.topology();
|
let topology = parameters.topology();
|
||||||
// TODO: insert local_kad_peer somewhere?
|
// TODO: insert local_kad_peer somewhere?
|
||||||
let closer_peers = topology
|
let closer_peers = topology
|
||||||
.closest_peers(key.as_ref(), self.num_results)
|
.closest_peers(key.as_ref(), self.num_results)
|
||||||
@ -191,7 +191,7 @@ impl<TSubstream> Kademlia<TSubstream> {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
QueryTarget::GetProviders(key) => {
|
QueryTarget::GetProviders(key) => {
|
||||||
let mut topology = parameters.topology();
|
let topology = parameters.topology();
|
||||||
// TODO: insert local_kad_peer somewhere?
|
// TODO: insert local_kad_peer somewhere?
|
||||||
let closer_peers = topology
|
let closer_peers = topology
|
||||||
.closest_peers(&key, self.num_results)
|
.closest_peers(&key, self.num_results)
|
||||||
|
@ -18,14 +18,14 @@
|
|||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
// DEALINGS IN THE SOFTWARE.
|
// DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
use crate::protocol::{
|
||||||
|
KadInStreamSink, KadOutStreamSink, KadPeer, KadRequestMsg, KadResponseMsg,
|
||||||
|
KademliaProtocolConfig,
|
||||||
|
};
|
||||||
use futures::prelude::*;
|
use futures::prelude::*;
|
||||||
use libp2p_core::protocols_handler::{ProtocolsHandler, ProtocolsHandlerEvent, ProtocolsHandlerUpgrErr};
|
use libp2p_core::protocols_handler::{ProtocolsHandler, ProtocolsHandlerEvent, ProtocolsHandlerUpgrErr};
|
||||||
use libp2p_core::{upgrade, either::EitherOutput, InboundUpgrade, OutboundUpgrade, PeerId};
|
use libp2p_core::{upgrade, either::EitherOutput, InboundUpgrade, OutboundUpgrade, PeerId};
|
||||||
use multihash::Multihash;
|
use multihash::Multihash;
|
||||||
use protocol::{
|
|
||||||
KadInStreamSink, KadOutStreamSink, KadPeer, KadRequestMsg, KadResponseMsg,
|
|
||||||
KademliaProtocolConfig,
|
|
||||||
};
|
|
||||||
use std::{error, fmt, io};
|
use std::{error, fmt, io};
|
||||||
use tokio_io::{AsyncRead, AsyncWrite};
|
use tokio_io::{AsyncRead, AsyncWrite};
|
||||||
|
|
||||||
|
@ -323,7 +323,8 @@ impl<'a, Id: 'a, Val: 'a> Bucket<'a, Id, Val> {
|
|||||||
mod tests {
|
mod tests {
|
||||||
extern crate rand;
|
extern crate rand;
|
||||||
use self::rand::random;
|
use self::rand::random;
|
||||||
use kbucket::{KBucketsPeerId, KBucketsTable, UpdateOutcome, MAX_NODES_PER_BUCKET};
|
use crate::kbucket::{KBucketsPeerId, KBucketsTable};
|
||||||
|
use crate::kbucket::{UpdateOutcome, MAX_NODES_PER_BUCKET};
|
||||||
use multihash::{Multihash, Hash};
|
use multihash::{Multihash, Hash};
|
||||||
use std::thread;
|
use std::thread;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
@ -27,11 +27,11 @@
|
|||||||
//! used to send messages.
|
//! used to send messages.
|
||||||
|
|
||||||
use bytes::BytesMut;
|
use bytes::BytesMut;
|
||||||
|
use crate::protobuf_structs;
|
||||||
use futures::{future, sink, stream, Sink, Stream};
|
use futures::{future, sink, stream, Sink, Stream};
|
||||||
use libp2p_core::{InboundUpgrade, Multiaddr, OutboundUpgrade, PeerId, UpgradeInfo};
|
use libp2p_core::{InboundUpgrade, Multiaddr, OutboundUpgrade, PeerId, UpgradeInfo};
|
||||||
use multihash::Multihash;
|
use multihash::Multihash;
|
||||||
use protobuf::{self, Message};
|
use protobuf::{self, Message};
|
||||||
use protobuf_structs;
|
|
||||||
use std::io::{Error as IoError, ErrorKind as IoErrorKind};
|
use std::io::{Error as IoError, ErrorKind as IoErrorKind};
|
||||||
use std::iter;
|
use std::iter;
|
||||||
use tokio_codec::Framed;
|
use tokio_codec::Framed;
|
||||||
@ -54,7 +54,9 @@ pub enum KadConnectionType {
|
|||||||
impl From<protobuf_structs::dht::Message_ConnectionType> for KadConnectionType {
|
impl From<protobuf_structs::dht::Message_ConnectionType> for KadConnectionType {
|
||||||
#[inline]
|
#[inline]
|
||||||
fn from(raw: protobuf_structs::dht::Message_ConnectionType) -> KadConnectionType {
|
fn from(raw: protobuf_structs::dht::Message_ConnectionType) -> KadConnectionType {
|
||||||
use protobuf_structs::dht::Message_ConnectionType::*;
|
use crate::protobuf_structs::dht::Message_ConnectionType::{
|
||||||
|
CAN_CONNECT, CANNOT_CONNECT, CONNECTED, NOT_CONNECTED
|
||||||
|
};
|
||||||
match raw {
|
match raw {
|
||||||
NOT_CONNECTED => KadConnectionType::NotConnected,
|
NOT_CONNECTED => KadConnectionType::NotConnected,
|
||||||
CONNECTED => KadConnectionType::Connected,
|
CONNECTED => KadConnectionType::Connected,
|
||||||
@ -67,7 +69,9 @@ impl From<protobuf_structs::dht::Message_ConnectionType> for KadConnectionType {
|
|||||||
impl Into<protobuf_structs::dht::Message_ConnectionType> for KadConnectionType {
|
impl Into<protobuf_structs::dht::Message_ConnectionType> for KadConnectionType {
|
||||||
#[inline]
|
#[inline]
|
||||||
fn into(self) -> protobuf_structs::dht::Message_ConnectionType {
|
fn into(self) -> protobuf_structs::dht::Message_ConnectionType {
|
||||||
use protobuf_structs::dht::Message_ConnectionType::*;
|
use crate::protobuf_structs::dht::Message_ConnectionType::{
|
||||||
|
CAN_CONNECT, CANNOT_CONNECT, CONNECTED, NOT_CONNECTED
|
||||||
|
};
|
||||||
match self {
|
match self {
|
||||||
KadConnectionType::NotConnected => NOT_CONNECTED,
|
KadConnectionType::NotConnected => NOT_CONNECTED,
|
||||||
KadConnectionType::Connected => CONNECTED,
|
KadConnectionType::Connected => CONNECTED,
|
||||||
|
@ -23,9 +23,9 @@
|
|||||||
//! This allows one to create queries that iterate on the DHT on nodes that become closer and
|
//! This allows one to create queries that iterate on the DHT on nodes that become closer and
|
||||||
//! closer to the target.
|
//! closer to the target.
|
||||||
|
|
||||||
|
use crate::handler::KademliaHandlerIn;
|
||||||
|
use crate::kbucket::KBucketsPeerId;
|
||||||
use futures::prelude::*;
|
use futures::prelude::*;
|
||||||
use handler::KademliaHandlerIn;
|
|
||||||
use kbucket::KBucketsPeerId;
|
|
||||||
use libp2p_core::PeerId;
|
use libp2p_core::PeerId;
|
||||||
use multihash::Multihash;
|
use multihash::Multihash;
|
||||||
use smallvec::SmallVec;
|
use smallvec::SmallVec;
|
||||||
|
@ -18,10 +18,10 @@
|
|||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
// DEALINGS IN THE SOFTWARE.
|
// DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
use kbucket::KBucketsPeerId;
|
use crate::kbucket::KBucketsPeerId;
|
||||||
|
use crate::protocol::KadConnectionType;
|
||||||
use libp2p_core::{Multiaddr, PeerId, topology::MemoryTopology, topology::Topology};
|
use libp2p_core::{Multiaddr, PeerId, topology::MemoryTopology, topology::Topology};
|
||||||
use multihash::Multihash;
|
use multihash::Multihash;
|
||||||
use protocol::KadConnectionType;
|
|
||||||
use std::vec;
|
use std::vec;
|
||||||
|
|
||||||
/// Trait allowing retreival of information necessary for the Kadmelia system to work.
|
/// Trait allowing retreival of information necessary for the Kadmelia system to work.
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "libp2p-observed-address"
|
name = "libp2p-observed-address"
|
||||||
|
edition = "2018"
|
||||||
description = "Observed addresses protocol for libp2p"
|
description = "Observed addresses protocol for libp2p"
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
authors = ["Parity Technologies <admin@parity.io>"]
|
authors = ["Parity Technologies <admin@parity.io>"]
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "libp2p-plaintext"
|
name = "libp2p-plaintext"
|
||||||
|
edition = "2018"
|
||||||
description = "Plaintext encryption dummy protocol for libp2p"
|
description = "Plaintext encryption dummy protocol for libp2p"
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
authors = ["Parity Technologies <admin@parity.io>"]
|
authors = ["Parity Technologies <admin@parity.io>"]
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "libp2p-dns"
|
name = "libp2p-dns"
|
||||||
|
edition = "2018"
|
||||||
description = "DNS transport implementation for libp2p"
|
description = "DNS transport implementation for libp2p"
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
authors = ["Parity Technologies <admin@parity.io>"]
|
authors = ["Parity Technologies <admin@parity.io>"]
|
||||||
|
@ -327,7 +327,7 @@ mod tests {
|
|||||||
use futures::future;
|
use futures::future;
|
||||||
use swarm::{Transport, transport::TransportError};
|
use swarm::{Transport, transport::TransportError};
|
||||||
use multiaddr::{Protocol, Multiaddr};
|
use multiaddr::{Protocol, Multiaddr};
|
||||||
use DnsConfig;
|
use super::DnsConfig;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn basic_resolve() {
|
fn basic_resolve() {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "libp2p-ratelimit"
|
name = "libp2p-ratelimit"
|
||||||
|
edition = "2018"
|
||||||
description = "Transfer rate limiting transport adapter for libp2p"
|
description = "Transfer rate limiting transport adapter for libp2p"
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
authors = ["Parity Technologies <admin@parity.io>"]
|
authors = ["Parity Technologies <admin@parity.io>"]
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "libp2p-tcp"
|
name = "libp2p-tcp"
|
||||||
|
edition = "2018"
|
||||||
description = "TCP/IP transport protocol for libp2p"
|
description = "TCP/IP transport protocol for libp2p"
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
authors = ["Parity Technologies <admin@parity.io>"]
|
authors = ["Parity Technologies <admin@parity.io>"]
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "libp2p-uds"
|
name = "libp2p-uds"
|
||||||
|
edition = "2018"
|
||||||
description = "Unix domain sockets transport for libp2p"
|
description = "Unix domain sockets transport for libp2p"
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
authors = ["Parity Technologies <admin@parity.io>"]
|
authors = ["Parity Technologies <admin@parity.io>"]
|
||||||
|
Reference in New Issue
Block a user