Tox
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
To run tests:
To build docs:
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:
To build & test:
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)
- DHT Node
-
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.