Skip to content

v0.0.2

Choose a tag to compare

@bluk bluk released this 27 Apr 15:20
· 64 commits to trunk since this release
v0.0.2
5f78afa

Fixed

  • Fix IndexBitfield::from_slice()

    from_slice() took a raw byte slice which did not give enough
    information about the length of the bitfield. Unused bytes would
    increase the size.

Changed

  • Remove clones for is_superset and is_subset

    Remove the need to take ownership which usually resulted in a clone of
    the IndexBitfield for is_superset() and is_subset().

  • Simplify IndexBitfield API

    Add simple getter/setter for IndexBitfield to get/set bool for index

  • Add type parameter for IndexCountedSet

    In most cases, u8 should be enough but in case a larger number of
    peers are simultaneously connected.

Added

  • Add time::Instant trait

    Add Instant trait for portability

  • Add peer::MetricsHistory

    MetricsHistory can be used to store regular intervals of history.
    Useful to make decisions based on metric averages over a period of
    time.

  • Add peer::Session for managing peer state

    Session maintains the various state changes for peers when a message
    is received or sent.

    Make peer::State and peer::SendState private to allow
    implementation details to change.

  • Add max_index() to IndexBitfield and IndexCountedSet

  • Add peer::Metrics and peer::State

    Metrics contain both the current interval's metrics and a running
    total of accumulated metrics.

    peer::State contains the local and remote state as well as deadlines
    for read and write.

  • Add protocol::Metrics methods for specific types

    Allow individual message type metrics to be added to skip the match
    expression if the message type is already known

  • Adds IndexBitfield::clear_with_max_index

    Enables reuse of the IndexBitfield by clearing and resizing to the new
    maximum piece index.

  • Add generational index and vector types

    Generational vectors can be used to store data related to peers and
    torrents inside a session type

  • Add protocol::Metrics, conn::Metrics, and torrent::Metrics

    Metrics can be used to keep track of what data has been exchanged. The
    metrics may be used to change behavior between peers.

  • Add PartialEq to protocol types

    For ReservedBytes and ReceivedHandshakeState