04/11/2025

SendMe – Pour partager des fichiers en P2P comme au bon vieux temps

Par admin

SendMe - Pour partager des fichiers en P2P comme au bon vieux temps

Vous avez besoin de partager un gros fichier avec un pote au travers d’Internet ? Bon, y’a WeTransfer et ce genre de choses mais ça reste limité en taille de fichier et c’est stocké on ne sait où… Après vous pouvez tenter
scp
en priant pour qu’il n’ait pas 15 couches de NAT, mais bon galère quoi…

Bienvenue dans sur le nouvel Internet, où le peer-to-peer est mort et enterré sous des tonnes de NAT, de pare-feu et de FAI qui bloquent tout. Du coup, on a tous abandonné le P2P pour le cloud et on upload nos fichiers comme des cons, lentement, parfois en payant, au lieu de balancer la sauce en direct.

Heureusement, y’a
SendMe
qui vient nous rappeler qu’Internet peut fonctionner autrement. C’est un outil de transfert de fichiers qui connecte deux machines directement, sans serveur intermédiaire. Vous lancez sendme send ~/mes_photos, ça génère un ticket unique, vous envoyez ce ticket à votre destinataire, il tape sendme receive blobQmFoo..., et c’est parti mon kiki pour un transfert direct à l’ancienne, device-to-device.

Pas de compte, pas de limite, que dalle à configurer, juste deux machines qui se parlent directement, comme au bon vieux temps !

Le truc cool, c’est que SendMe utilise
Iroh
, un protocole P2P qui contourne tous les problèmes de NAT et compagnie puisqu’il fonctionne avec un système de “dial by public key” où chaque endpoint a une clé publique unique de 256 bits. Et ensuite, vous vous connectez en utilisant cette clé plutôt qu’une adresse IP.

Quand vous générez un ticket avec SendMe, ce ticket contient la clé publique de votre machine que le destinataire utilise pour se connecter chez vous. Peu importe que vous soyez derrière un NAT, que votre adresse IP change, ou que vous n’ayez aucune idée de ce qu’est un port forwarding. Iroh gère le NAT hole punching automatiquement, et si vraiment la connexion directe est impossible, il passe par un serveur relai en fallback.

Iroh, c’est du QUIC pur jus, un protocole de transport moderne dont je vous ai déjà parlé, qui apporte pas mal de trucs cools comme du chiffrement, de l’authentification par défaut (TLS 1.3), du multiplexage de streams, pas de head-of-line blocking, et connexion en zéro round-trip. Du coup, une fois connecté, les transferts peuvent saturer une connexion 8 Gbps sans problème !

Les fichiers sont ainsi streamés avec vérification Blake3, donc vous êtes sûr de l’intégrité des données et si le transfert est interrompu, pas de problème, il reprend là où il s’était arrêté. Et comme tout passe en chiffrement de bout en bout via QUIC, personne ne peut voir ce qui transite dans les tutubes de votre Internet.

L’installation sur Unix/Linux/macOS, un petit curl et hop, c’est plié :

curl -fsSL https://iroh.computer/sendme.sh | sh

Sur Windows:

iwr https://www.iroh.computer/sendme.ps1 -useb | iex

Vous vous retrouvez avec un binaire sendme prêt à l’emploi.

Maintenant, si vous préférez une interface graphique plutôt que la ligne de commande, il existe aussi
AltSendme
, une application desktop cross-platform qui utilise le même protocole Iroh. L’app est développée en Rust avec Tauri pour le backend et React + TypeScript pour le frontend et le gros avantage, c’est qu’elle est compatible avec SendMe CLI. Vous pouvez donc générer un ticket avec l’interface graphique et quelqu’un peut le recevoir en ligne de commande, ou vice-versa.

AltSendme ajoute également une couche d’interface utilisateur sympa tout en gardant toute la puissance technique d’Iroh… Même chiffrement de bout en bout (QUIC + TLS 1.3), même NAT hole punching, même vérification Blake3, mêmes téléchargements résumables. C’est dispo sous Windows, macOS (Intel et Apple Silicon), et Linux (deb et AppImage) et comme d’hab, le projet est open-source sous licence AGPL-3.0.

En février dernier, les dev ont ajouté le support navigateur via WebAssembly, ce qui signifie qu’à terme, vous pourrez faire du P2P directement depuis votre navigateur. Ils bossent aussi sur QUIC Multipath, une extension qui permet d’utiliser plusieurs chemins réseau simultanément pour encore plus de performance et de résilience.

L’idée derrière Iroh, c’est donc de redonner aux internautes le contrôle de leurs réseaux plutôt que de tout centraliser comme des teubés sous crack sur des serveurs Amazon, Google ou Microsoft. Ce protocole permet ainsi aux machines de se parler directement, comme Internet était censé fonctionner à l’origine.

SendMe et AltSendme ne sont que deux applications construites sur Iroh et ce protocole lui-même offre d’autres modules comme iroh-blobs (pour le transfert de fichiers verified) et iroh-gossip (pour la communication en temps réel). Vous pourriez donc construire du streaming vidéo avec priorisation de streams, du networking de jeux, de la communication temps réel, ou n’importe quelle app qui a besoin de connexions directes rapides et sécurisées entre devices, avec ce truc.

Merci à Lorenper pour le partage de cette découverte.

Source : korben.info