Rust — EXIF — 14 formats

Triez vos photos
en un instant

Tri automatique par date EXIF, deduplication BLAKE3, galerie web interactive avec lightbox, tags, notes, metadonnees EXIF et mode serveur.

14
Formats photo
6
Commandes
7
Endpoints API
130
Tests
cargo build --release

Tout ce qu'il faut.

Du tri EXIF a la galerie interactive en passant par l'export filtre — tout en un seul binaire.

Detection de date intelligente

EXIF (DateTimeOriginal), nom de dossier (regex 19xx/20xx), puis date filesystem en dernier recours.

Deduplication BLAKE3

Hash cryptographique ultra-rapide de chaque photo avant copie. Les doublons sont ignores automatiquement.

Reprise apres interruption

Progression JSON sauvegardee apres chaque copie. Ctrl+C gere proprement, reprise exacte au relancement.

Galerie web interactive

Lightbox avec chargement progressif, diaporama, tags, notes, filtres, miniatures. Statique ou mode serveur.

Mode serveur HTTP

Suppression, deplacement, rotation, metadonnees EXIF, sauvegarde directe via API REST. Cache HTML et miniatures.

Export filtre

Copier les photos correspondant a un tag et/ou une note minimale vers un dossier de destination.

Tags et notes

Systeme de tags libres et notes 1-5 par fichier. Edition inline dans la lightbox, suggestions en un clic, persistance JSON.

Metadonnees EXIF

Consultation des metadonnees EXIF depuis la lightbox : appareil, objectif, ISO, ouverture, vitesse, dimensions, taille fichier.

Chargement progressif

La lightbox affiche instantanement la miniature (floue) puis bascule sur la haute resolution une fois chargee.

Detection de date

Cascade de trois methodes — la premiere qui reussit gagne.

Priorite 1
EXIF
DateTimeOriginal
DateTimeDigitized
DateTime
Priorite 2
Dossier
Regex (19|20)\d{2}
dans le chemin du fichier
Priorite 3
Systeme
Date de creation ou
modification du fichier

API REST

Le mode serve expose une API REST complete pour manipuler les photos.

Methode Endpoint Description
GET / Galerie HTML (servie depuis le cache)
GET /thumb/{path} Miniature JPEG d'une photo
GET /api/exif?path=... Metadonnees EXIF + taille + dimensions
POST /api/metadata Sauvegarder tags et notes
POST /api/move Deplacer une photo vers un autre dossier
POST /api/rotate Rotation d'une image (90, 180, 270)
DEL /api/photo?path=... Supprimer une photo

Commandes

6 sous-commandes pour trier, taguer, noter, afficher, servir et exporter.

Terminal
1# Trier les photos par annee
2photo-sort sort /chemin/vers/photos
3photo-sort sort /photos -o /photos/triees
4
5# Tags et notes
6photo-sort tag /triees 2008/photo.jpg vacances
7photo-sort rate /triees 2008/photo.jpg 5
8
9# Galerie statique
10photo-sort gallery /photos/triees
11
12# Serveur interactif
13photo-sort serve /photos/triees
14photo-sort serve /photos/triees -p 3000
15
16# Export filtre
17photo-sort export /triees /export --tag vacances --rating 4

14 formats supportes

JPEG, RAW, HEIC et plus — tous les formats courants de reflex, hybrides et smartphones.

jpg jpeg png heic heif cr2 cr3 nef arw dng orf rw2 raf tiff

Suite de tests

130 tests couvrant chaque module — tous passent a chaque commit.

sort28
gallery27
serve22
thumb19
metadata17
export10
130 tests — all passing

Fichiers generes

Fichiers crees par photo-sort dans le dossier de sortie.

.photo_sort_progress.json
Progression + correspondance source/destination/hash BLAKE3
.photo_sort_metadata.json
Tags et notes par fichier, persistance JSON
.photo_sort_origins
Correspondance nouveau nom / chemin original (par dossier annee)
.photo_sort_thumbs/
Cache des miniatures JPEG generees automatiquement (mode serveur)
gallery.html
Galerie HTML autonome, utilisable sans serveur