* Add support for unsigned varints
* Depend on unsigned-varint 0.2 without default features
* Change hash code type from u8 to u64
* Fix hash codes and enum variants for BLAKE2 to fit the standard (see #524)
* Run cargo fmt on crate
* Expand hash_types test to include all variants
* Add support for BLAKE2b-512 and BLAKE2s-256
* Depend on blake2 crate 0.7 with no default features
* Update encode! macro for support for blake2 crate
* Update all tests to include BLAKE2b-512 and BLAKE2s-256
* Reduce hash code size from u64 to u16
* Fix typo in doc comment
* Bump tiny-keccak to version 1.4
* Remove unnecessary default-features = false in Cargo.toml
Refactor multiaddr crate.
- Remove `AddrComponent`. Instead `Protocol` directly contains its
associated data.
- Various smaller changes around conversions to Multiaddr from other
types, e.g. socket addresses.
- Expand tests to include property tests which test encoding/decoding
identity.
* secio: keep ciphertext if start_send is not ready
Otherwise ciphertext may be thrown away and once sent, the cipher states
have diverged, resulting in nonsense messages on decryption side.
* Also attempt to send pending data `Sink::close`.
* Inline `send_pending`.
* Rewrite the swarm
* Small improvement to Debug of ListenersStream
* Fix Swarm::Replaced never being produced
* Fix logic problem when reaching a node in swarm
* Small comment in swarm
* Add closed_multiaddr to Replaced event
* Add address to NodeClosed and NodeError
* Fix concerns
* Remove StreamMuxer::boxed
* Use `unsigned-varint` crate.
* Implement `Display` for `Protocol`.
Gives `ToString` for free.
* Use `Cow` in `AddrComponent`.
* Add `AddrComponent::acquire`.
* Document `AddrComponent::acquire`.
* Introduce NULL cipher and allow more configuration.
* Back to using the hash-code for handshake.
Using `Endpoint` would be incompatible with the existing protocol.
* Add comments.
Retain all incoming buffer elements with different substream ID or equal
Endpoint. The latter was previously not considered which could result in
the removal of data for another substream with same ID but opposite
Endpoint.
* The SwarmFuture is now a Stream
* Return the produced future in the message
* Remove IncomingConnection event
* Pass error when failing to dial
* Fix loop break mistake
* Fix concern
* Rename SwarmFuture to SwarmEvents
* Increase type length limit
* Remove todo