Contexte et motivation
Un développeur anonyme a annoncé avoir décompilé plusieurs composants de la suite Adobe, dont Photoshop et Illustrator, pour en extraire les structures de fichiers et les appels d’API internes. L’objectif affiché était de reproduire ces fonctionnalités sous forme d’un projet open source entièrement écrit en Rust. Cette démarche s’inscrit dans une tendance croissante où les communautés cherchent à remplacer des logiciels propriétaires par des alternatives auditées et maintenues de façon collaborative.
Méthodologie de décompilation et réécriture
Le processus a commencé par l’utilisation d’outils de désassemblage (par exemple Ghidra) pour analyser les binaires Windows et macOS fournis par Adobe. Les ingénieurs ont identifié les structures de données (formats de calques, profils de couleur, métadonnées XMP) et les points d’entrée API exploités par les plugins tiers. Ces informations ont servi de spécifications techniques pour la réécriture en Rust, langage choisi pour sa sûreté mémoire et son modèle de concurrence. Aucun code source original n’a été récupéré ; la reconstruction repose uniquement sur l’observation du comportement binaire.
Analyse technique de la réimplémentation Rust
Le code publié utilise le crate image pour la manipulation raster et le crate svg pour le rendu vectoriel, deux bibliothèques largement adoptées dans l’écosystème Rust. Les développeurs ont implémenté un pipeline de traitement d’image qui reproduit les filtres de base (blur, sharpen) en s’appuyant sur les primitives SIMD exposées par le module std::arch. La gestion de la mémoire est assurée par le système d’emprunt de Rust, éliminant les fuites classiques observées dans les versions C++ de la suite Adobe. Cependant, le projet ne fournit pas encore de benchmark de performance comparatif avec les binaires officiels, ce qui rend difficile l’évaluation de la rapidité ou de la consommation CPU.
Enjeux de compatibilité et de licence
Le projet open source est publié sous la licence MIT, ce qui autorise une utilisation commerciale sans contrainte. Néanmoins, la compatibilité avec les formats propriétaires d’Adobe (PSD, AI) repose sur une implémentation « clean‑room » qui doit reproduire les spécifications sans violer les brevets. Les auteurs déclarent que les tests d’interopérabilité se limitent à l’ouverture de fichiers créés par les versions récentes de Photoshop CC 2024, mais aucune validation n’a été faite avec les extensions tierces (plug‑ins, scripts JSX). Cette absence de validation complète constitue une limitation majeure pour les professionnels qui dépendent d’une chaîne de production homogène.