diff --git a/.gitignore b/.gitignore
index f4355fb..30275bb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,6 +22,10 @@ dat/nginx-confgen/changes.log
dat/nginx-confgen/changes.md
dat/nginx-confgen/man.md
dat/nginx-confgen/man.pod
+dat/torreas/changes.log
+dat/torreas/changes.md
+dat/torreas/man.md
+dat/torreas/man.pod
dat/tuwf/changes.log
dat/tuwf/changes.md
dat/tuwf/man.md
@@ -89,6 +93,10 @@ pub/nginx-confgen.html
pub/nginx-confgen/changes.html
pub/nginx-confgen/feed.atom
pub/nginx-confgen/man.html
+pub/torreas.html
+pub/torreas/changes.html
+pub/torreas/feed.atom
+pub/torreas/man.html
pub/tuwf.html
pub/tuwf/changes.html
pub/tuwf/feed.atom
diff --git a/Makefile b/Makefile
index cdf6f57..a516173 100644
--- a/Makefile
+++ b/Makefile
@@ -67,7 +67,10 @@ PAGES=\
"tuwf/man/xml.pod https://g.blicky.net/tuwf.git/plain/lib/TUWF/XML.pod TUWF::XML Documentation"\
"ylib.pod https://g.blicky.net/ylib.git/plain/README.pod Ylib"\
"yxml.md"\
- "yxml/man.md https://g.blicky.net/yxml.git/plain/yxml.md"
+ "yxml/man.md https://g.blicky.net/yxml.git/plain/yxml.md"\
+ "torreas.md"\
+ "torreas/changes.log https://g.blicky.net/torreas.git/plain/ChangeLog Torreas Release History"\
+ "torreas/man.pod https://g.blicky.net/torreas.git/plain/torreas.pod Torreas Manual"
# Files generated by mkfeed.pl
@@ -78,7 +81,8 @@ FEEDS=\
pub/ncdu/feed.atom\
pub/nginx-confgen/feed.atom\
pub/tuwf/feed.atom\
- pub/yxml/feed.atom
+ pub/yxml/feed.atom\
+ pub/torreas/feed.atom
# Files we need to download
@@ -149,6 +153,7 @@ ${HTML_OUT}: pub/%.html: dat/%.md template.html
nginx-confgen*) echo "nginx-confgen";;\
tuwf*) echo "tuwf";;\
yxml*) echo "yxml";;\
+ torreas*) echo "torreas";;\
*) echo "main";;\
esac)\
-o "$@"
diff --git a/dat/guestbook.md b/dat/guestbook.md
index 3849451..4e6126c 100644
--- a/dat/guestbook.md
+++ b/dat/guestbook.md
@@ -17,6 +17,9 @@ respective issue tracker or send a mail to
# Entries
+`2023-10-27` - kspes
+: I love this tool so much! I use it on all my unix and mac machines quite often :)
+
`2023-09-11` - NeedM
: Nice client program but only 32bit version?
diff --git a/dat/index.md b/dat/index.md
index a9e12de..6099f83 100644
--- a/dat/index.md
+++ b/dat/index.md
@@ -19,6 +19,10 @@ the incidental article on this site. Enjoy your stay!
## Announcements
+`2023-11-03` - New tool: torreas
+: I wrote a little tool to reassemble torrent files, more information
+ available on its [homepage](/torreas).
+
`2023-09-11` - ncdu 1.19 released
: Fixes a typo in the `--exclude-from` option and backports the CLI option to
disable natural sorting and the little indicator in the footer whether
diff --git a/dat/torreas.md b/dat/torreas.md
new file mode 100644
index 0000000..a6453df
--- /dev/null
+++ b/dat/torreas.md
@@ -0,0 +1,48 @@
+% 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.
+
+## Download
+
+Latest version
+: 0.1 ([torreas-0.1.tar.gz](/download/torreas-0.1.tar.gz) - [changes](/torreas/changes))
+
+Build requirements
+: Zig 0.11
+
+License
+: MIT
+
+Development version
+: Available [on git](https://code.blicky.net/yorhel/torreas).
+
+## 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.
diff --git a/pub/download/torreas-0.1.tar.gz.asc b/pub/download/torreas-0.1.tar.gz.asc
new file mode 100644
index 0000000..c79df44
--- /dev/null
+++ b/pub/download/torreas-0.1.tar.gz.asc
@@ -0,0 +1,16 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAABCgAdFiEEdEYNMrgIEOupr6LpYjlMaYwnOfoFAmVFRJwACgkQYjlMaYwn
+OfrIzQ//V9avsMqT2smmsANEeG4ex6YjPCp6ELH7aBUbbMF0y+IOLFAzZ5MNROQT
+84MLWC4kJkP7oTw5/wpAq8bUSIjEgMR5LhlNZ0nDFl1WnfVQaUoejYMmztezc4ft
+w57NzQZAFj2XOf7xE271MzZqajYMRrWo99T4LKQrFJhZQ9ceJtWGftsMYNcVe06f
+mJ89ZHwRX/hYEb1ZXS0sSCgjguqDHKIMueQu90HXHej+fbnVm35z/yw5ul3qbiK5
+qo2tiJymHYekv0FGe73jfxkCD0D+nHulRMOLXtjDtUQdyDiDPx4rjFE7aWFGBJy7
+H0RIm0u1z3zvabRriRzrIMaJ9bVAZhr2DsJm7Rxt2syvzRa4axvU8xK3wnPPGRhZ
+zLjJdLc1AXplBmr20vLI6pAAe/jsUHpdI3GJZTepQj0KNZDWNzHrxeVgtVv7nCN8
+sOnOLIfqu9za+DwQ/FZuccJw4KCOvCiThEylk9H92doPp6rlBEzh5u7bl/nIBlI2
+8CSvg4em/i8zrnu3RpPlhtLimuJz1kKg3XQtRwrF1xFETcrBcXfsZC6zFjq9Prps
+gszBGOFR9TFd9ZXlmuVXa3a1vOS0Iu4U+tTYeAcDBY6v9t2xOuV/sL274bDBc7yw
+XA09Fn75WYxKBIeWdMcC/x+kMqSShAWEBQ3ctQMBZh35AbyPUZc=
+=3c7G
+-----END PGP SIGNATURE-----
diff --git a/pub/download/torreas-0.1.tar.gz.md5 b/pub/download/torreas-0.1.tar.gz.md5
new file mode 100644
index 0000000..9e65945
--- /dev/null
+++ b/pub/download/torreas-0.1.tar.gz.md5
@@ -0,0 +1 @@
+c2b761761cf5566b6f4a306329c4b5e3 torreas-0.1.tar.gz
diff --git a/pub/download/torreas-0.1.tar.gz.sha1 b/pub/download/torreas-0.1.tar.gz.sha1
new file mode 100644
index 0000000..6d4ec35
--- /dev/null
+++ b/pub/download/torreas-0.1.tar.gz.sha1
@@ -0,0 +1 @@
+53342fd5e54e2852484d7c0b5d6f043429873a3f torreas-0.1.tar.gz
diff --git a/pub/download/torreas-0.1.tar.gz.sha256 b/pub/download/torreas-0.1.tar.gz.sha256
new file mode 100644
index 0000000..5481c38
--- /dev/null
+++ b/pub/download/torreas-0.1.tar.gz.sha256
@@ -0,0 +1 @@
+56f6276b42832e7a3e0477331a9f2a7b2b668bfb5a10e156e7cb389ff4a4d9d1 torreas-0.1.tar.gz
diff --git a/template.html b/template.html
index 8d1f131..441e694 100644
--- a/template.html
+++ b/template.html
@@ -24,6 +24,7 @@