bluk/cloudburst

Cloudburst is a library to help with BitTorrent implementations

Cloudburst is a library to help with Latest API Docs

Cloudburst

Cloudburst is a library to help with BitTorrent implementations.

Documentation

  • Latest API Docs

Installation

[dependencies]
cloudburst = "0.0.3"

License

Licensed under either of Apache License, Version 2.0 or MIT License at your option.

Contributions

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Versions

Find the latest versions by id

v0.0.3 - May 31, 2022

Fixed

  • Fix documentation for peer module types

Changed

  • Add InfoHash fmt implementations

  • Add Id and ReservedBytes fmt implementations

  • Add const, #[must], and #[inline] to various types

  • Add pub to stable newtypes

Added

  • Add DHT Node Id and CompactAddress types

  • Add KRPC traits and common message types for error, ping, find_node, announce_peer and get_peers

  • Add KRPC transaction Id and collection types

  • Add DHT Routing types to manage known nodes

v0.0.2 - Apr 27, 2022

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

v0.0.1 - Apr 19, 2022

Added

  • Initial release

Information - Updated Aug 04, 2022

Stars: 1
Forks: 0
Issues: 0

Repositories & Extras

Rust bindings for libinjection

Add libinjection to dependencies of Cargo

Rust bindings for libinjection

Rust bindings for the C++ api of PyTorch

LIghtweight wrapper for pytorch eg libtorch in rust

Rust bindings for the C++ api of PyTorch

Rust leveldb bindings

Almost-complete bindings for leveldb for Rust

Rust leveldb bindings

Rust-Lightning is a Bitcoin Lightning library written in Rust

lightning, does not handle networking, persistence, or any other I/O

Rust-Lightning is a Bitcoin Lightning library written in Rust

P2P Rollback Networking in Rust

GGRS (good game rollback system) is a reimagination of the Rust 🦀

P2P Rollback Networking in Rust

Cardano Rust Ouroboros Network

This crate implements the networking layer for the Ouroboros blockchain protocol

Cardano Rust Ouroboros Network

An experimental project for using Golioth (currently just) on the nRF9160

This project is currently in a holding pattern until the Embedded Rust ecosystem has caught up to the necessary networking support

An experimental project for using Golioth (currently just) on the nRF9160

Painless peer-to-peer WebRTC networking for rust wasm applications

The goal of the Matchbox project is to enable udp-like, unordered, unreliable

Painless peer-to-peer WebRTC networking for rust wasm applications

Here lies my attempt to create a multi thread webserver based off of Rust and...

Here lies my attempt to create a multi thread webserver based off of Rust and using HTTP and TCP networking protocols :)

Here lies my attempt to create a multi thread webserver based off of Rust and...

Utilities for networking in rust with tokio

This does not have a well-defined or finished API yet, so breaking changes will be counted as minor changes before release v1

Utilities for networking in rust with tokio

Rust Data Transfer Protocol

Asynchronous cross-platform networking interfaces for Rust

Rust Data Transfer Protocol
Facebook Instagram Twitter GitHub Dribbble
Privacy