Torf

Latest version: v4.2.7

Safety actively analyzes 693883 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 10

3.2.0

- Support for reading magnet URIs was added, e.g. "torf -i 'magnet:...' -o
foo.torrent". The missing information is downloaded from the parameters
"xs", "as", "ws" and "tr", if possible. Support for DHT and UDP trackers is
not implemented.
- The --in option now supports "-" as a parameter to read a torrent or magnet
URI from stdin.
- When verifying torrent content, a trailing slash in PATH automatically
appends the torrent's name to PATH. For example, "torf -i foo.torrent
path/to/foo" is identical to "torf -i foo.torrent path/to/" while "torf -i
foo.torrent path/to" looks for foo.torrent's files in "path/to".
- --in, --out and --name are now illegal in config files.

3.1.3

- Bugfix: Exclude tests from package.

3.1.2

- Bugfix: Preserve binary values of fields that aren't part of the BitTorrent
specification.
(Thanks, ayasechan)

3.1.1

- Bugfix: Allow all torf 3.*.* version, not just 3.0.0.

3.1.0

- Huge performance increase due to multithreading.
- Verify a torrent's content: torf -i content.torrent path/to/content
- Progress is now reported in two lines with more information.
- New option: --metainfo prints a JSON object of the torrent's metainfo.
- New option: --json prints a JSON object of the regular output.
- New option: --verbose shows file sizes in plain bytes, verifies file
content more thoroughly, etc.
- New option: --exclude-regex excludes files that match a regular expression.
- --exclude and --exclude-regex patterns are now matched against the complete
relative path within the torrent instead of individual path segments.
- Support for multiple tiers of announce URLs when creating torrents.
- Exit codes have changed and are now properly documented in the man page.
- Bugfix: --max-piece-size can now set piece sizes larger than 16 MiB.

3.0.2

- Bugfix: Torrent.validate() and Torrent.read_stream() now raise MetainfoError
if the "info" field is not a dictionary.
- Bugfix: Magnet.from_string() raised ValueError instead of MagnetError if the
"xl" parameter wasn't a number.
- Bugfix: Magnet.from_string() strips whitespace from the beginning and end
before parsing the URI.
- Bugfix: Magnet.kt used commas to separate keywords. (I don't know why.)
- Bugfix: Gracefully handle empty path components in torrent file
(e.g. "foo//bar")
- Torrent.private is now None instead of False if there is no "private" field
in the "info" section of the metainfo.

Page 5 of 10

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.