Yoran Heling
home - git - @ayo
= pgp = only used for releases
key - mit
7446 0D32 B808 10EB A9AF A2E9 6239 4C69 8C27 39FA

Cute decorative scissors, cutting through your code.

Torreas - Torrent file reassembler

Torreas is a little command-line utility to reassemble torrents. It can scan multiple directories in order to find files that are mentioned in the torrent. It does this by only comparing file sizes and checksums, not location or file name, so it can be used to reconstruct a torrent that you have downloaded and archived somewhere, at some point.


Latest version Atom feed
0.1 (File: torreas-0.1.tar.gz
Size: 10.0 KiB (10.271 bytes)
PGP: torreas-0.1.tar.gz.asc
MD5: c2b761761cf5566b6f4a306329c4b5e3
SHA1: 53342fd5e54e2852484d7c0b5d6f043429873a3f
SHA-256: 56f6276b42832e7a3e0477331a9f2a7b2b668bfb5a10e156e7cb389ff4a4d9d1
- changes)
Build requirements
Zig 0.11
Development version
Available on git.

Bugs & limitations

Partial reassembly is not yet supported. If a file is missing from your local archive, torreas will give up and throw an error. Will likely get fixed in future versions.

Torreas currently does an exhaustive search and is therefore able to find all matching (duplicate) files. This is usually overkill, as you’ll only need one match for each file to reassemble a torrent. This totally hasn’t been a problem in my tests so far, but if there’s many candidate files it may be faster to stop searching after the first match. I may or may not fix this in the future.

Padding files in torrents are not yet supported. Should be easy to fix, I simply haven’t encountered such a torrent yet.

Torreas could be a lot faster if it could use multiple cores to verify checksums, but the current version is single-threaded. I don’t expect this to change anytime soon, I don’t particularly enjoy writing threaded code and Zig, in its current form, doesn’t yet have the tools to help out much in this area either.

Because torrent checksums can span multiple files, there are edge cases where torreas will run out of memory or simply never complete while it is trying to brute-force all possible file combinations. I may add more heuristics or manual user feedback in the future to better handle such cases.