1 unstable release
0.1.0 | Oct 7, 2020 |
---|
#367 in Multimedia
35 downloads per month
Used in 2 crates
(via tox)
31KB
400 lines
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. 😄 For details, look at CONTRIBUTING.md.
Building
Fairly simple. First, install Rust >= 1.65 and a C compiler (Build Tools for Visual Studio on Windows, GCC or Clang on other platforms).
Then you can build the debug version with
cargo build
To run tests, use:
cargo test
To build docs and open them in your browser:
cargo doc --open
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
Goals
- improved toxcore implementation in Rust
- Rust API
- documentation
- tests
- more
Progress
A fully working tox-node written in pure Rust with a DHT server and a TCP relay can be found here.
Right now we are working on the client part.
Authors
zetox was created by Zetok Zalbavar (zetok/openmailbox/org) and assimilated by the tox-rs team.
tox-rs has contributions from many users. See AUTHORS.md. Thanks everyone!
License
Licensed under GPLv3+ with Apple app store exception.
lib.rs
:
E.g.
use tox_encryptsave::*;
let plaintext = b"pls no encrypt";
let password = b"123456";
// to encrypt data
let encrypted = pass_encrypt(plaintext, password)
.expect("Failed to encrypt >.<\"");
// confirm that the data is encrypted
assert_ne!(plaintext, encrypted.as_slice());
assert!(is_encrypted(&encrypted));
// decrypted is same as plaintext
assert_eq!(plaintext,
pass_decrypt(&encrypted, password).unwrap().as_slice());
Dependencies
~18MB
~83K SLoC