tox 0.0.5

Implementation of toxcore in pure Rust - P2P, distributed, encrypted, easy to use DHT-based network.
Documentation

Tox

Travis Build Status Appveyor Build Status Coverage Status Docs Current Crates.io Version Join Gitter

This library is an implementation of toxcore in Rust - P2P, distributed, encrypted, easy to use DHT-based network.

Reference

The Tox Reference should be used for implementing toxcore in Rust. Reference source repository.

If existing documentation appears to not be complete, or is not clear enough, issue / pull request should be filled on the reference repository.

Contributions

... are welcome :smile:. For details, look at CONTRIBUTING.md.

Dependencies

Name Version
libsodium >=1.0.13

Building

Fairly simple. You'll need Rust >= 1.24.0 and libsodium.

When you'll have deps, build debug version with

cargo build

To run tests:

cargo test

To build docs:

cargo doc

They will be located under target/doc/

With clippy

To build with support for clippy (linting), you need nightly Rust. Usually the latest available version is required.

To build:

cargo build --features "clippy"

To build & test:

cargo test --features "clippy"

Goals

  • improved toxcore implementation in Rust
  • Rust API
  • documentation
  • tests
  • more

Progress

Not listed items are on TODO. If you're interested in them arriving sooner, consider helping :wink:

  • implementing toxcore

    • DHT Node
      • ping requests & responses
      • nodes requests & responses
      • CookieRequest
      • CookieResponse (parsed but ignored)
      • CryptoHandshake (parsed but ignored)
      • CryptoData (parsed but ignored)
      • LanDiscovery
      • OnionRequest[0,1,2]
      • OnionResponse[3,2,1]
      • OnionAnnounceRequest & OnionDataRequest
      • OnionAnnounceResponse & OnionDataResponse (parsed but ignored)
      • BootstrapInfo
      • NAT ping requests & responses
    • TCP Relay
      • Handshake
      • RouteRequest
      • RouteResponse
      • ConnectNotification
      • DisconnectNotification
      • PingRequest
      • PongResponse
      • OobSend
      • OobReceive
      • OnionRequest
      • OnionResponse
      • Data
    • toxencryptsave (aka TES)
  • Rust API

    It will be a subject to changes, and most likely parts that are currently public will at later point become hidden. That though depends on the needs.

  • Documentation

    • Simply great. Further improvements in progress.
  • tests

    • tests cover almost all functionality

License

Licensed under MIT. For details, see LICENSE.