Usenet Archive Toolkit (UAT) es un conjunto de utilidades de código abierto diseñado para procesar diversas fuentes de mensajes de Usenet y convertirlas en un archivo coherente, consultable y operativo sin conexión a internet. El proyecto, alojado en GitHub, ofrece dos modos de uso principales: leer un archivo UAT ya creado mediante la herramienta tbrowser, o construir uno propio a partir de fuentes como maildir, mbox, Google Groups o servidores NNTP siguiendo el flujo de trabajo documentado.
El autor del proyecto defiende la utilidad de UAT frente a alternativas como Google Groups, los conjuntos de datos de Archive.org o servidores NNTP históricos. Argumenta que UAT funciona completamente offline, que los archivos no desaparecen de forma imprevista (algo habitual en servicios de Google como Reader o Code) y que su formato está optimizado para un acceso rápido y una búsqueda eficiente. Cada mensaje se comprime individualmente mediante LZ4, mientras que el archivo completo se recompacta con zstd y un diccionario compartido, lo que reduce el tamaño total por debajo del de una colección sin comprimir. La búsqueda se realiza mediante un léxico de palabras inspirado en el diseño del paper original de Google.
Entre sus características destacan la deduplicación de mensajes, la fusión de múltiples fuentes sin duplicar contenido, el filtrado de spam y de mensajes fuera del grupo, la transcodificación a UTF-8 y la limpieza de HTML y cabeceras mal formadas. UAT también calcula un grafo de conectividad entre mensajes que permite reconstruir hilos incluso cuando faltan cabeceras de referencia, mediante búsqueda de texto citado. La biblioteca libuat mapea los archivos a memoria respaldada en disco, lo que permite que tbrowser gestione grupos con 2,5 millones de mensajes usando solo 25 MB de RAM. Se incluyen utilidades para importar, procesar, limpiar, indexar y consultar los datos, además de archivos de ejemplo como el de Usenet polaco y el de juegos de PC.
