mainline 0.2.0

Simple, robust, BitTorrent's Mainline DHT implementation
Documentation

Mainline

WIP mainline rust implementation.

For the foreseeable future, this library is limited to the scope of read-only DHT clients.

  • BEP0005 basic
    • Ping
      • Request
      • Response
    • Find node
      • Request
      • Response
    • query (incrementally get closer nodes)
    • Announce/Get peers
      • Get
      • Put
  • BEP0044 arbitrary storage
    • Mutable data
      • Get
      • Put
    • Immutable data
      • Get
      • Put
  • BEP0043 read-only
    • Does not handle incoming requests if read-only
    • Inform other nodes that this node is read-only
    • Does not add read-only nodes to local routing tables
  • Features for long living clients
    • API for storing and load routing table between sessions.
    • Refresh nodes in the local rounting table frequently enough
    • Control number of concurrent udp requests
    • Refresh cached queries to keep closest nodes fresh, skipping get before put
    • Backoff while republishing.
  • BEP0042 security extension
  • Features for server side nodes
    • Respond with relevant errors.
    • Egress rate limits
    • Ip rate limits
    • Error responses