Skip to content

Latest commit

 

History

History
83 lines (50 loc) · 3.39 KB

File metadata and controls

83 lines (50 loc) · 3.39 KB

Changelog

All notable changes to this Rust implementation of hypercore-protocol will be documented here.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased - ReleaseDate

Added

Changed

  • Fix Open/Close messages corrupting multi-message batches.

Removed

0.7.1 - 2026-06-04

  • Rewrite serveral async methods to return owned futures and fix a busy loop (PR 148).

0.7.0 - 2026-02-19

BIG CHANGES:

  • Encryption and framing of streams has been moved out of this crate into hypercore_handshake and uint24le_framing respectively. This had big impacts on the public API. Now Protocol::new just takes a impl CipherTrait argument.
  • Remove dependence on hypercore instead we use hypercore_schema (so hypercore related features have been removed).
  • Bumped to edition 2024.
  • Dropped support for async-std (and its feature flag)

0.6.1 - 2024-10-28

  • Implement Clone on Channel, remove unnecessary mut requirements, and improve Protocol debugging.

0.6.0 - 2024-10-25

API breaking changes

Support hypercore v0.14.0 and change tokio as the default async runtime.

0.5.0 - 2024-07-05

API breaking changes

Support hypercore v0.13.0 which [removed generic parameters from Hypercore and Storage][datrs/hypercore#139].

0.4.1 - 2023-10-26

  • Implement close() and signal_local() in CommandTx

0.4.0 - 2023-10-12

API breaking changes

  • Support for Hypercore LTS v10 which is backward incompatible with v9 and thus v0.3.0 of this crate. This resulted in many changes throughout the API.

0.3.0

API breaking changes

  • Changed the generic argument of the Protocol struct to be a single IO handle (AsyncRead + AsyncWrite) in place of a R: AsyncRead and W: AsyncWrite. This is a change in the public API. If you have seperate reader and writer structs, a Duplex handle is provided that combines the reader and writer. If you have a struct that is both AsyncRead and AsyncWrite, the Protocol is now generic just over that struct.
  • Reworked internals to use manual poll functions and not an async function. The Protocol struct now directly implements Stream, the ProtocolStream wrapper is removed.
  • Made the Event enum non-exhaustive.
  • Removed the destroy method, errors are emitted on the protocol stream.
  • Changed key and discovery key values to be [u8; 32] in place of Vec<u8>

    . To convert from a Vec<u8>, use key.try_into().unwrap() if you're sure that the key is a 32 byte long u8 vector.

0.0.2

initial release