À propos du projet

purlvalidator est une bibliothèque Go sous licence Apache-2.0 qui valide les Package-URLs (PURLs). Elle fonctionne entièrement hors ligne, ce qui la rend adaptée aux environnements isolés ou restreints, et vérifie si le package représenté par un PURL existe réellement. La bibliothèque est livrée avec un Finite State Transducer (FST) préconstruit contenant des Package-URLs connus extraits par MineCode. Elle utilise ce FST pour effectuer des recherches et confirmer si un PURL de base (un PURL sans version, qualificateurs ou sous-chemin) existe. Les écosystèmes actuellement pris en charge incluent apk, cargo, composer, conan, cpan, cran, debian, maven, npm, nuget, pypi et swift. La fonction Validate renvoie true lorsque le PURL de base existe dans les données empaquetées, false lorsqu'il est syntaxiquement valide mais inconnu, et une erreur lorsque l'entrée n'est pas un PURL valide ou contient une version, des qualificateurs ou un sous-chemin. Une version corrective est publiée quotidiennement avec le dernier FST généré à partir des URL de packages nouvellement extraites. Le projet inclut des cibles make pour construire le FST, exécuter les tests et effectuer le linting.