Skip to content
reader.me

Notes techniques

Comment fonctionne reader.me

Aucun PDF que vous ouvrez ne quitte votre machine. Cette page explique comment c'est possible architecturalement, ce que fait chaque pièce, et comment vous pouvez vérifier la promesse vous-même en 30 secondes.

La version courte

Les navigateurs modernes embarquent un runtime presque complet : moteur JavaScript JIT, WebAssembly, canvas 2D, cryptographie, API fichiers et stockage persistant. Suffisant pour faire tout ce qu'un éditeur PDF desktop fait — sans envoyer le fichier nulle part.

reader.me, c'est environ 4 MB de JavaScript et WebAssembly qui collent quatre bibliothèques open-source en 20 outils. Le PDF que vous déposez est lu depuis le handle File local dans un Uint8Array, manipulé en mémoire, et le résultat vous est offert en téléchargement via URL.createObjectURL. À aucun moment il n'y a de requête réseau impliquant votre document.

Ce qui se passe quand vous déposez un PDF

  1. Le navigateur passe le fichier directement à JavaScript. L'API drag-and-drop nous donne un objet File pointant sur les octets déjà sur disque.
  2. Nous lisons les octets dans un typed array. await file.arrayBuffer() donne les octets bruts.
  3. La bonne bibliothèque fait le travail. Quatre moteurs : pdf-lib, PDF.js, Tesseract.js, Comlink Workers (au-delà de 20 MB).
  4. Le résultat devient un téléchargement. Le Uint8Array est emballé dans un Blob, une URL d'objet temporaire est créée, un <a> invisible avec download est cliqué.

Pourquoi c'est de la confidentialité structurelle

La plupart des promesses "pas d'upload" des services cloud signifient quelque chose de plus faible : le serveur jette votre fichier après quelques heures. Le fichier a bien atteint leurs serveurs.

Chez reader.me, il n'y a pas d'"après" à jeter parce qu'il n'y a pas d'upload au départ. C'est la différence entre confidentialité par politique et confidentialité structurelle.

Et l'analytique ?

Nous chargeons Google Analytics (différé, post-LCP) et Cloudflare Web Analytics. Ni l'un ni l'autre ne voit vos PDF — uniquement des balises pageview avec le chemin URL, le locale et le user agent standard. Pas de noms de fichiers, pas de contenu.

Les robots sont explicitement autorisés (GPTBot, ClaudeBot, etc.) — il n'y a aucune donnée document à scraper.

Vérifiez vous-même en 30 secondes

  1. Ouvrez les DevTools (F12 sur Windows, ⌥⌘I sur macOS) et passez à Network.
  2. Effacez la liste, cochez "preserve log".
  3. Déposez un PDF sur l'outil Compresser et cliquez.
  4. Regardez le panneau Network. Aucune requête transportant votre fichier. Le téléchargement arrive sous forme d'URL blob:.

Les compromis que nous acceptons

Tout faire dans le navigateur n'est pas gratuit. Limites honnêtes :

  • Plafond de taille. 50 MB par fichier en web. Le build desktop Tauri (Phase 4) lèvera cette limite.
  • Pas de signatures qualifiées. QES avec certificats FNMT/DNIe nécessite des API smart-card de l'OS.
  • Données OCR volumineuses. Premier lancement OCR télécharge ~12 MB.
  • PDF/A perd le texte sélectionnable. Nous rasterisons chaque page.

Liens connexes

reader.me est une idée de David Carrero , développé chez Color Vivo Internet S.L.