Contributions are highly welcomed, as Torr strives to become a feature complete BitTorrent implementation in the future.
Make sure that changes are in line with the project direction, utilize the roadmap found in README.md or open an issue if unsure.
Recommendation: For your first couple of PRs, start with something small to get familiar with the project and its development processes.
- Utilize modern C++ paradigms
- C is a welcomed language to interface with syscalls, see
network/socket/cassync.h - Always use snake_case, except for macros
- Use std::expected error handling when exposing API functionality
- Commit messages should begin with a category ex: "network/socket: make tcp write asynchronous"
The recommended way to work on Torr is by cloning the main repository locally, then forking it on GitHub and adding your repository as a Git remote:
git remote add myfork git@github.com:MyUsername/Torr.gitYou can then create a new branch and start making changes to the code:
git checkout -b mybranchAnd finally push the commits to your fork:
# ONLY run this the first time you push
git push --set-upstream myfork mybranch
# This will work for further pushes
git pushIf you wish to sync your branch with master, or locally resolve merge conflicts, use:
# On mybranch
git fetch origin
git rebase masterGitHub is the main platform for communication @ DevGev/Torr.