Sobre el proyecto

purlvalidator es una librería de Go bajo licencia Apache-2.0 que valida Package-URLs (PURLs). Opera totalmente offline, lo que la hace adecuada para entornos restringidos o air-gapped, y comprueba si el paquete representado por un PURL realmente existe. La librería se distribuye con un Finite State Transducer (FST) preconstruido que contiene Package-URLs conocidos extraídos por MineCode. Utiliza este FST para realizar búsquedas y confirmar si existe un PURL base (un PURL sin versión, calificadores o subruta). Los ecosistemas soportados actualmente incluyen apk, cargo, composer, conan, cpan, cran, debian, maven, npm, nuget, pypi y swift. La función Validate devuelve true cuando el PURL base existe en los datos empaquetados, false cuando es sintácticamente válido pero desconocido, y un error cuando la entrada no es un PURL válido o contiene una versión, calificadores o subruta. Se publica diariamente una versión de parche con el FST más reciente generado a partir de URLs de paquetes recién extraídas. El proyecto incluye objetivos de make para construir el FST, ejecutar pruebas y realizar linting.