{"id":13568988,"url":"https://github.com/jesec/rtorrent","last_synced_at":"2025-04-06T15:13:31.032Z","repository":{"id":37491724,"uuid":"315097362","full_name":"jesec/rtorrent","owner":"jesec","description":"stable, high-performance and low resource consumption BitTorrent client","archived":false,"fork":false,"pushed_at":"2024-06-13T00:57:27.000Z","size":5506,"stargazers_count":208,"open_issues_count":35,"forks_count":36,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-30T13:08:27.049Z","etag":null,"topics":["collaborate"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jesec.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-22T17:46:48.000Z","updated_at":"2025-03-24T21:14:25.000Z","dependencies_parsed_at":"2024-01-16T20:24:09.852Z","dependency_job_id":"2c9177c2-a83b-441f-8656-15bcdeacd111","html_url":"https://github.com/jesec/rtorrent","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesec%2Frtorrent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesec%2Frtorrent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesec%2Frtorrent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesec%2Frtorrent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jesec","download_url":"https://codeload.github.com/jesec/rtorrent/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247500469,"owners_count":20948880,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["collaborate"],"created_at":"2024-08-01T14:00:34.338Z","updated_at":"2025-04-06T15:13:31.009Z","avatar_url":"https://github.com/jesec.png","language":"C++","funding_links":["https://paypal.me/jarisundell","https://paypal.me/jarisundelljp","https://www.patreon.com/rtorrent"],"categories":["BT","C++"],"sub_categories":["BT Clients"],"readme":"# RTorrent BitTorrent Client\n\nrTorrent is a stable, high-performance and low resource consumption BitTorrent client.\n\nThis distribution focuses on additional user-facing features, optimizations and better integrations with modern users of RPC interfaces. One of the long-term goal of this project is to switch from antique XML-RPC to modern protocols with bidirectional capabilities such as gRPC, JSON-RPC over WebSocket or GraphQL, which allows real-time events, less serialization/transfer overheads, better security, etc.\n\nThere is NO CHANGE in consensus-layer (BitTorrent protocol). As such, this distribution will behave exactly the same as [vanilla rTorrent](https://github.com/rakshasa/rtorrent) in the swarm, and there will not be any compatibility issue with certain trackers, if rTorrent 0.9.8 is supported.\n\n## Getting started\n\n### Installation\n\nFully static binaries are available at [Releases](https://github.com/jesec/rtorrent/releases).\n\n```sh\n# Install rTorrent to /usr/local/bin/rtorrent\n# rtorrent-linux-amd64 and rtorrent-linux-arm64 are available\nsudo wget https://github.com/jesec/rtorrent/releases/latest/download/rtorrent-linux-amd64 -O /usr/local/bin/rtorrent\n\n# Make it executable\nsudo chmod +x /usr/local/bin/rtorrent\n\n# Default configuration\nsudo mkdir -p /etc/rtorrent\nsudo wget https://github.com/jesec/rtorrent/releases/latest/download/rtorrent.rc -O /etc/rtorrent/rtorrent.rc\n\n# Install as a systemd service (optional)\n# This example uses \"download\" user. Replace it with the an existing user that rTorrent should run with.\nsudo wget https://github.com/jesec/rtorrent/releases/latest/download/rtorrent@.service -O /etc/systemd/system/rtorrent@.service\nsudo systemctl daemon-reload\nsudo systemctl enable rtorrent@download\nsudo systemctl start rtorrent@download\n```\n\nOr [install with APT repository](https://deb.jesec.io/)\n\nOr [run with Docker](https://github.com/jesec/rtorrent#docker)\n\nOr [build from source](https://github.com/jesec/rtorrent#build)\n\n### Use\n\nRun `rtorrent`\n\nYou can execute rTorrent [commands](https://rtorrent-docs.readthedocs.io/en/latest/cmd-ref.html) to set port, set announced IP, etc.\n\nFor example, to launch rTorrent with port `6881` and DHT disabled, `rtorrent -o network.port_range.set=6881-6881,dht.mode.set=disable`.\n\nCheckout [Flood](https://flood.js.org), a modern Web UI for rTorrent.\n\nTo learn how to use rTorrent visit the [Wiki](https://github.com/rakshasa/rtorrent/wiki).\n\n### Configuration\n\nDefault configuration file is available at [doc/rtorrent.rc](https://github.com/jesec/rtorrent/blob/master/doc/rtorrent.rc). It is often installed to `/etc/rtorrent/rtorrent.rc`.\n\nYou may modify the configuration file to fit your needs. Alternatively, use `-o`, as documented above, to override some configurations but keep using the loaded configuration file.\n\nIt is recommended to expand upon the default configuration if user-specific config files (usually placed to `$HOME/.rtorrent.rc`) are used:\n\n```\n## Import default configurations\nimport = /etc/rtorrent/rtorrent.rc\n\n## Your configurations\n...\n```\n\nrTorrent tries to load **a** configuration file from several locations:\n\n- $XDG_CONFIG_HOME/rtorrent/rtorrent.rc (highest priority)\n- $HOME/.config/rtorrent/rtorrent.rc\n- $HOME/.rtorrent.rc\n- /etc/rtorrent/rtorrent.rc (lowest priority)\n\nOr, use `-n` argument to prevent rTorrent from loading any configuration file. Then you can use `-o try_import=\u003cpath\u003e` to load a config file from an arbitrary location.\n\n## Build\n\n### Bazel\n\nBazel 3 or later is required.\n\nBazel manages most dependencies.\n\nDependencies are specified by the `WORKSPACE` file. Sometimes you may want to override a specific dependency with a local repository for easier development. To do that, use `override_repository` Bazel command line argument. For example, `--override_repository=libtorrent=/path/to/local/libtorrent`.\n\nUnmanaged dependencies:\n\n- GCC/Clang compiler toolchain and C/C++ development files (C++17 support required)\n\n```sh\n# Install Bazel\n# Use the build of your system and architecture\n# bazelisk-linux-arm64 and bazelisk-darwin-amd64 are also available\nsudo wget https://github.com/bazelbuild/bazelisk/releases/latest/download/bazelisk-linux-amd64 -O /usr/local/bin/bazel\nsudo chmod +x /usr/local/bin/bazel\n\n# Install unmanaged dependencies and build tools\n# Use the package manager of your distribution\nsudo apt install build-essential\n\n# Clone repository\ngit clone https://github.com/jesec/rtorrent.git\ncd rtorrent\n\n# Build\n# By default, the executable is self contained, yet it depends on C/C++ standard libraries of system.\n# To generate a fully static executable, use --features=fully_static_link argument.\n# Note that glibc have issues that make static executables unreliable.\n# If you want fully static, reproducible, portable and stable executable, build with Dockerfile.\nbazel build rtorrent\n\n# Binary available at bazel-bin/rtorrent\n```\n\n### CMake\n\nCMake 3.5 or later is required.\n\nYou have to install dependencies manually to system or let CMake know where to find them.\n\nDependencies:\n\n- GCC/Clang compiler toolchain and C/C++ development files (C++17 support required)\n- [libtorrent](https://github.com/jesec/libtorrent) with development files (core dependency, matching version required)\n- libcurl with development files\n- libncurses/libncursesw with development files (for terminal UI)\n- libxmlrpc-c with development files (optional if USE_XMLRPC=OFF, for XML-RPC support)\n- nlohmann/json with development files (optional if USE_JSONRPC=OFF, for JSON-RPC support)\n- googletest with development files (optional, for unit tests)\n\n```sh\n# Compile and install libtorrent (matching version required)\n# Check README of libtorrent for instructions\n\n# Install dependencies and build tools\n# Use the package manager of your distribution\nsudo apt install build-essential cmake libc6-dev libcurl4-openssl-dev libncursesw5-dev libxmlrpc-c++8-dev libgtest-dev nlohmann-json3-dev\n\n# Clone repository\ngit clone https://github.com/jesec/rtorrent.git\ncd rtorrent\n\n# Configure and generate Makefile\ncmake .\n\n# Build\n# By default, shared binaries are generated\nmake\n\n# Binary available at ./rtorrent\n\n# Install (optional)\nsudo make install\n```\n\n## Docker\n\n[Dockerfile](https://github.com/jesec/rtorrent/blob/master/Dockerfile)\n\nTo test: `docker run -it jesec/rtorrent`\n\nNote that you have to expose BitTorrent port (e.g. `-p 50000:50000`) and map folders (e.g. `-v /home/download:/home/download`) yourself.\n\nBy default, rTorrent's files are located in `$HOME/.local/share/rtorrent`. Check [doc/rtorrent.rc](https://github.com/jesec/rtorrent/blob/master/doc/rtorrent.rc) to know more about the default configurations.\n\nTo integrate with [Flood](https://flood.js.org), see [discussions](https://github.com/jesec/flood/discussions/120).\n\n## Donate to rTorrent development\n\n[![Donate](https://rakshasa.github.io/rtorrent/donate_paypal_green.svg)](https://paypal.me/jarisundell)\n\n- [Paypal](https://paypal.me/jarisundelljp)\n- [Patreon](https://www.patreon.com/rtorrent)\n- [SubscribeStar](https://www.subscribestar.com/rtorrent)\n- BitCoin: 1MpmXm5AHtdBoDaLZstJw8nupJJaeKu8V8\n- Etherium: 0x9AB1e3C3d8a875e870f161b3e9287Db0E6DAfF78\n- LiteCoin: LdyaVR67LBnTf6mAT4QJnjSG2Zk67qxmfQ\n\nHelp keep rTorrent development going by donating to its creator.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjesec%2Frtorrent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjesec%2Frtorrent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjesec%2Frtorrent/lists"}