Skip to content

Latest commit

 

History

History
285 lines (174 loc) · 14.6 KB

CHANGELOG.md

File metadata and controls

285 lines (174 loc) · 14.6 KB

Changelog

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

0.10.0 (2021-03-05)

⚠ BREAKING CHANGES

  • tokio: new Tokio v1 is not backward compatible with previous runtime versions < 1.

  • tokio: upgrade tokio to v1.2.0, quinn to v0.7.0 and rustls to v0.19.0 (0465cf8)

0.9.25 (2021-03-03)

0.9.24 (2021-02-25)

0.9.23 (2021-02-21)

0.9.22 (2021-02-20)

Features

  • igd: expose a feature to completely disable IGD support, downgrading igd crate to v0.11.1 (0873b29)

Bug Fixes

  • echo_service: dont contact echo_service if IGD was successful (8899436)

0.9.21 (2021-02-19)

Bug Fixes

  • config: do not use the IGD gateway to realize local IP address (62dbcc4)

0.9.20 (2021-02-19)

Bug Fixes

  • use loopback even when IGD finds local ip, if network is loopback (95f00b3)

0.9.19 (2021-02-18)

Bug Fixes

  • logs: dont log expected messages at error level (12b2c5a)

0.9.18 (2021-02-16)

0.9.17 (2021-02-15)

Bug Fixes

  • use hard coded contacts to realize local IP address (3741833)

0.9.16 (2021-02-12)

Features

  • adds a p2p node example that uses bidirectional streams (46184b8)
  • makes QuicP2p::Endpoint cloneable so that it can more easily be used across threads. (a8c8b9d)
  • api: add API to open bi-directional stream that can be used to (158ae88)
  • api: add support for manual port forwarding by passing additional (9dca7b9)
  • api: move all connection handling and message handling internally (0093c20)
  • disconnects: add API for disconnection and fix tests (37abcf9)
  • echo_service: find if peer is externally reachable if external IP (a9989cc)
  • echo_service: perform UPnP and/or echo_service when the endpoint (5812f7b)

Bug Fixes

  • all: remove FIFO queues and use the mpsc channels directly (2bab054)
  • echo_service: prevent contacting the echo service multiple times (f9cf906)
  • example: dont use LocalHost in example (2d70c05)
  • igd: don't skip port forwarding if local IP address is specified (2fb6401)
  • test: refactor structure of test code and fix echo_service test (591ebf8)

0.9.15 (2021-02-09)

0.9.14 (2021-02-02)

0.9.13 (2021-01-27)

Bug Fixes

  • connections: when gracefully finishing uni-stream upon sending bytes, do not remove conn from the pool if an error thrown was caused due to being already closed (e6c5a2a)

0.9.12 (2021-01-21)

0.9.11 (2021-01-20)

0.9.10 (2021-01-20)

Features

  • get peer's cached connection (1d8f4ab)

0.9.9 (2021-01-14)

0.9.8 (2021-01-13)

0.9.7 (2020-12-29)

0.9.6 (2020-12-10)

0.9.5 (2020-12-10)

0.9.4 (2020-12-10)

Features

  • api: add more error variants and use them instead of (bb56857)

Bug Fixes

  • example: remove panics from the example (20dfe02)

0.9.3 (2020-12-03)

Bug Fixes

  • proper error on empty bootstrap (db61592)

0.9.2 (2020-11-24)

0.9.1 (2020-11-19)

Bug Fixes

  • do not initialize logger in QuicP2p constructor (4952639)

0.9.0 (2020-11-19)

⚠ BREAKING CHANGES

  • QuicP2p::bootstrap return type changed from Result<(Endpoint, Connection)> to Result<(Endpoint, Connection, IncomingMessages)>.
  • Dropping Connection while some send/recv streams are still in scope no longer closes the connection. All those streams must be dropped too before the connection is closed.
  • - `Endpoint::connect_to` now returns pair or `(Connection, Option<IncomingMessages>)` (previously it returned only `Connection`).
    
    • Connection::open_bi_stream renamed to open_bi (same as in quinn)
    • Connection::send renamed to send_bi for consistency
    • Endpoint::listen no longer returns Result

Features

  • add Endpoint::close (2cedb77)
  • do not close quinn::Connection on Connection drop (1e5ee89)
  • implement Clone for Connection (51de4c8)
  • implement connection deduplication (175c563)
  • implement connection pooling (6edb290)
  • re-export quinn::ConnectionError (c10895d)
  • remove connection from the pool when manually closed (815eb11)
  • return also IncomingMessages from QuicP2p::bootstrap (cd18837)

0.8.9 (2020-11-18)

0.8.8 (2020-11-10)

Features

  • config: add --fresh and --clean flags to the config to prevent use (b685d77)
  • port_forwarding: refactor IGD and echo service to be async (a19cd51)
  • upnp: add config to disable port forwarding for clients (4a14488)

Bug Fixes

  • echo_service: respond to echo service request and expand test (40217e1)
  • echo_service_test: refactor test to use tokio::spawn and join! (2f82af2)
  • examples: Fix clippy errors in examples (c201df3)
  • upnp: add timeout for IGD and echo service (2167ead)

0.8.7 (2020-11-05)

0.8.6 (2020-10-27)

0.8.5 (2020-10-26)

0.8.4 (2020-09-30)

0.8.3 (2020-09-24)

0.8.2 (2020-09-22)

Features

  • api: change bootstrap_nodes arg in with_config API to be an slice rather than a VecDeque (a505065)
  • header: add message header that is sent over the wire for data (4dc09b8)

Bug Fixes

  • client-ip: set to use loopback ip if hard coded contacts are loopback (06fb27f)
  • endpoint: return error if no local addr was specified and IGD is not available (940dce9)
  • log: minor fixes in log messages (0a9bf09)

0.8.1 (2020-09-08)

  • Update repo/crate name to qp2p

0.8.0 (2020-09-08)

  • Update repo/crate name to quic_p2p to match org naming convention
  • Refactor the API to allow reusing of streams to exchange multiple messages
  • Refactor and fix tests to use the new API
  • Add api to get connection stream without sending a message
  • Update qp2p endpoint port when a random port is used
  • Expose a function to query remote address from a Connection
  • Add support for listening to messages from both uni-streams and bi-streams
  • Expose a 'listen' API which return a stream of connections and in turn messages
  • Support for bootstrapping using multiple nodes concurrently
  • Support sending a message on a Connection and awaiting for a response using unidirectional streams
  • Expose an async API

[0.7.0]

  • Standardize cargo dependency versioning
  • Return an error when IGD fails

[0.6.2]

  • Fix clippy errors in feature-gated code
  • Fix bug in get_connection_info with upnp enabled.

[0.6.1]

  • Skip port forwarding if quic-p2p is running on the loopback address.

[0.6.0]

  • Include support for UPnP and improve echo service.
  • Use IGD for port forwarding and use the IGD gateway to find a node's local IP address.

[0.5.0]

  • Update quinn to 0.6.0
  • Update rustls to 0.17.0

[0.4.0]

  • Force the use of the basic single-threaded Tokio scheduler to prevent conflicts when used by a crate using Tokio rt-threaded feature
  • Take two channels, one for client event and a second one for a node
  • Use node or client channel for sending a message depending on the peer we are receiving the message from
  • Remove the use of peer certificate, and therefore remove it from the handshake process
  • Use shared QUIC ClientConfig instead of one per peer
  • Update for Rust 1.41 (mem::replace -> mem::take)
  • Use structopt to parse command line arguments
  • Rename proxies to bootstrap_nodes
  • Migrate to async/await syntax with new quinn v0.5
  • Update CI to run all packages in the worspace
  • Migrate CI/CD pipeline to GitHub Actions
  • Use new new-style macro import
  • Unsent user messages in the pending queues of an ongoing connection attempt will now be sent back to the user library if the connection attempt fails.
  • Report connection failure for all cases where the connection was initiated by us. Previously some of the cases where not handled.
  • Fire unsent user messages to the clients back to the user library. Previously unsent messages to clients were silently ignored.

[0.3.0]

  • Expose Dirs and OverRide structs publicly.
  • Add boostrap_cache_dir field to the config to specify a custom path for the bootstrap cache.

[0.2.1]

  • Fix incorrect deserialisation logic in WireMsg
  • Fix fmt::Display for Event and WireMsg

[0.2.0]

  • Fix bugs
  • Modify API and internals with changes required by routing
  • Return user messages given via send API for both successful and unsuccessful sends
  • Tie a user given token to the event returning the above message to help identify the context

[0.1.1]

  • Initial release.
  • Implement bootstrap cache.
  • Implement the bootstrap logic.
  • Add peer types (Client/Node).
  • Implement optimised user message transfer (for larger messages).
  • Add utils for testing delayed connections.
  • Add configuration loading from files and command line (with structopt).