Pipes nommés via Internet
POST vers un chemin. GET depuis le même chemin. Les données s'écoulent directement de l'émetteur au récepteur — sans tampon, sans upload, sans stockage. Juste HTTP.
Terminal A — Émetteur
$ curl -T report.pdf \
…/pipe/my-report
[INFO] En attente de récepteur...
[INFO] Streaming vers 1 récepteur(s)...
[INFO] Transfert terminé.
Terminal B — Récepteur
$ curl \
…/pipe/my-report
-o report.pdf
% Total report.pdf
100 2.4M 100 2.4M 0 0 1.8M
Les données transitent, elles ne se stockent pas
Chaque octet que vous envoyez arrive aux récepteurs en temps réel. Le serveur est un fil, pas un entrepôt.
SOURCE
émetteur
SERVEUR PIPE
zéro stockage · jusqu'à 256 récepteurs
DESTINATION
récepteur
L'émetteur ouvre
L'émetteur fait un POST ou PUT vers n'importe quel chemin. Le serveur attend — jusqu'à 5 minutes — qu'un récepteur se connecte.
Les octets transitent
Les données s'écoulent octet par octet sur le fil. Zéro tampon. Aucun fichier temporaire. Aucune étape d'upload.
Les récepteurs se connectent
Les récepteurs font un GET vers le même chemin et récupèrent le flux en direct. Jusqu'à 256 récepteurs peuvent recevoir d'un seul émetteur.
Compositions de pipe courantes
La plupart des recettes se résument à deux commandes curl — une pour envoyer, une pour recevoir.
Ce qui peut transiter par un pipe
Tout Content-Type qui n'est pas exécutable en tant que script transite verbatim. Les types MIME dangereux sont réécrits en text/plain — les données ne sont pas perdues, le XSS est prévenu.
application/octet-streamPUT → GETFichiers binaires, archives, images
/api/v1/pipe/[path]text/plainPOST → GETLogs, stdin, config, flux stdout
/api/v1/pipe/[path]multipart/form-dataPOST → GETUpload de fichier navigateur (première partie seulement)
/api/v1/pipe/[path]video/webm, video/mp4PUT → navigateurPartage d'écran, vidéo enregistrée
/api/v1/pipe/[path]?videotext/event-stream (SSE)GET spectateurSurveillance de progression, vitesse/ETA/état
/api/v1/pipe/[path]?progresstext/html (réécrit)PUT → GETRéécrit en text/plain avant transfert — XSS prévenu, données non perdues
/api/v1/pipe/[path]En-têtes personnalisésPUT → GETMétadonnées X-Hoody-Pipe, X-Piping transmises
/api/v1/pipe/[path]Tous les endpoints se trouvent sur /api/v1/pipe/[path]. La direction décrit qui écrit, qui lit.
Conçu pour le volume
Limites strictes appliquées par serveur. HTTP 429 quand la capacité est pleine, HTTP 414 quand les chemins sont trop longs.
256
Récepteurs max sur un seul chemin
1 000
Connexions en attente non établies
1 000
Flux simultanés en cours
5 min
TTL avant éviction HTTP 408
1 024
Longueur max du chemin en caractères
50
Spectateurs de progression par chemin
9 endpoints, deux commandes qui comptent
POST ou PUT pour envoyer. GET pour recevoir. Tout le reste est de l'observabilité.
Observabilité & UI
{count, plural, =1 {# endpoint} other {# endpoints}'}GET /health → { status, activePipes }
Transfert de données
{count, plural, =1 {# endpoint} other {# endpoints}'}POST ou PUT pour envoyer · GET pour recevoir
À deux commandes curl
Aucun SDK. Aucune configuration d'auth. Aucune limite de taille de fichier. Lancez un conteneur Pipe et commencez à transférer.