Tox
About this project
Website | Wiki | Blog | FAQ | Binaries/Downloads | Clients | Compiling
What is Tox
Tox is a peer to peer (serverless) instant messenger aimed at making security and privacy easy to obtain for regular users. It uses libsodium (based on NaCl) for its encryption and authentication.
IMPORTANT!
This is an experimental cryptographic network library. It has not been formally audited by an independent third party that specializes in cryptography or cryptanalysis. Use this library at your own risk.
The underlying crypto library libsodium provides reliable encryption, but the security model has not yet been fully specified. See issue 210 for a discussion on developing a threat model. See other issues for known weaknesses (e.g. issue 426 describes what can happen if your secret key is stolen).
Toxcore Development Roadmap
The roadmap and changelog are generated from GitHub issues. You may view them on the website, where they are updated at least once every 24 hours:
- Changelog: https://toktok.ltd/changelog/c-toxcore
- Roadmap: https://toktok.ltd/roadmap/c-toxcore
Installing toxcore
Detailed installation instructions can be found in INSTALL.md.
Be advised that due to the addition of cmp as a submodule, you now also need
to initialize the git submodules required by toxcore. This can be done by
cloning the repo with the following command:
git clone --recurse-submodules https://github.com/Toktok/c-toxcore or by
running git submodule update --init in the root directory of the repo.
In a nutshell, if you have libsodium installed, run:
mkdir _build && cd _build
cmake ..
make
sudo make install
If you have libvpx and opus installed, the above will also build the A/V library for multimedia chats.
Using toxcore
The simplest "hello world" example could be an echo bot. Here we will walk through the implementation of a simple bot.
Creating the tox instance
All toxcore API functions work with error parameters. They are enums with one
OK value and several error codes that describe the different situations in
which the function might fail.
