All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- The
tcp
,core
(private for now) andquic
(still WIP) modules. - Documentation for message types.
- The
set_disconnected
methods (RoutingTable
andSyncRoutingTable
) now return abool
. - Renamed
RoutingTable
->TcpRouter
. - Renamed
SyncRoutingTable
->SyncTcpRouter
.
- The
RoutingTable::set_connected
function now inserts the identifier into the bucket when compiled with--release
.
- The
RoutingTable::peer_meta
getter (returns a reference toPeerMeta
).
- A
Kadcast
trait to weavekadmium
into an existing node implementation. - An async-compatible routing table implementation that is
Sync
and wraps the core routing table. - A
sync
feature flag to gate the above.
- APIs now use the connection address for lookups instead of the identifier.
- Connected and disconnected peers are tracked more reliably now.
- The
set_last_seen
helper is no longer needed as part of the public or private APIs.
- Introduce the
ProcessData<S>
trait to determine how to handle data wrapped in aChunk
message.
- Make
process_message
andprocess_chunk
generic overProcessData<S>
. - Make
find_k_closest
private.
- Show required features for gated APIs on docs.rs.
- Set
last_seen
when processing messages.
- Pass in the sender's
Id
toprocess_message
. - Pass
Id
by reference where possible.
- Byte array-backed
Id
to replace theu128
.
- Rust
nightly
feature#![feature(int_log)]
requirement, crate compiles onstable
.
- Make the
buckets
field onRoutingTable
private. - The
find_k_closest
method now uses the log2 of the XOR-distance to order its search instead of the distance. - Module visibility and re-exports to be more ergonomic.
- Various improvements to crate documentation.