toxcore implementation in Rust
Clone or download
kpp Merge pull request #263 from suhr/logo
Add logo to the documentation
Latest commit 9113d04 Nov 12, 2018


Travis Build Status Appveyor Build Status Coverage Status Docs Current Version Join Gitter

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


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.


... are welcome 😄. For details, look at


Name Version
libsodium >=1.0.13


Fairly simple. You'll need Rust >= 1.26.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 check for clippy warnings (linting), you need nightly Rust with clippy-preview component.

To check:

cargo clippy --all

To check with tests:

cargo clippy --all --tests


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


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

  • implementing toxcore

    • DHT Node
      • ping requests & responses
      • nodes requests & responses
      • CookieRequest
      • CookieResponse
      • CryptoHandshake
      • CryptoData
      • LanDiscovery
      • OnionRequest[0,1,2]
      • OnionResponse[3,2,1]
      • OnionAnnounceRequest & OnionDataRequest
      • OnionAnnounceResponse & OnionDataResponse (need onion client)
      • 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


Dual licensed under the MIT or GPLv3+ licenses. You may use this project under the terms of either the MIT License or the GNU General Public License (GPL) Version 3+.

For details, see LICENSE-MIT and LICENSE-GPL.