Named Pipes über das Internet
An einen Pfad POSTen. Vom gleichen Pfad GETten. Daten fließen direkt vom Sender zum Empfaenger — kein Puffern, keine Uploads, kein Speichern.
Terminal A — Sender
$ curl -T report.pdf \
…/pipe/my-report
[INFO] Waiting for receiver...
[INFO] Streaming to 1 receiver(s)...
[INFO] Transfer complete.
Terminal B — Receiver
$ curl \
…/pipe/my-report
-o report.pdf
% Total report.pdf
100 2.4M 100 2.4M 0 0 1.8M
Daten fließen durch, nicht hinein
Jedes Byte, das du sendest, kommt in Echtzeit bei den Empfängern an. Der Server ist ein Kabel, kein Lager.
QUELLE
Sender
PIPE-SERVER
kein Speicher · bis zu 256 Empfänger
SENKE
Empfänger
Sender öffnet
Sender POSTet oder PUTet an jeden Pfad. Der Server wartet – bis zu 5 Minuten – darauf, dass ein Empfänger sich verbindet.
Bytes fließen durch
Daten streamen byte für byte über die Leitung. Kein Buffering. Keine temporären Dateien. Kein Upload-Schritt.
Empfänger verbinden sich
Empfänger GETten denselben Pfad und ziehen den Live-Stream. Bis zu 256 Empfänger können von einem Sender fan-out betreiben.
Häufige Pipe-Kompositionen
Die meisten Rezepte sind zwei curl-Befehle – einer zum Senden, einer zum Empfangen.
Was durch eine Pipe fließen kann
Jeder Content-Type, der nicht skript-ausführbar ist, fließt unverändert. Gefährliche MIME-Typen werden zu text/plain umgeschrieben — Daten werden nicht verworfen.
application/octet-streamPUT → GETBinaerdateien, Archive, Bilder
/api/v1/pipe/[path]text/plainPOST → GETLogs, stdin, Konfiguration, stdout-Streams
/api/v1/pipe/[path]multipart/form-dataPOST → GETBrowser-Datei-Upload (nur erster Teil)
/api/v1/pipe/[path]video/webm, video/mp4PUT → BrowserBildschirmfreigabe, aufgezeichnetes Video
/api/v1/pipe/[path]?videotext/event-stream (SSE)GET ZuschauerFortschritts-Monitoring, Geschwindigkeit/ETA/Status
/api/v1/pipe/[path]?progresstext/html (umgeschrieben)PUT → GETWird vor dem Weiterleiten zu text/plain umgeschrieben — XSS verhindert, Daten nicht verworfen
/api/v1/pipe/[path]Benutzerdefinierte HeaderPUT → GETX-Hoody-Pipe, X-Piping-Metadaten weitergeleitet
/api/v1/pipe/[path]Alle Endpunkte liegen auf /api/v1/pipe/[path]. Richtung beschreibt, wer schreibt, wer liest.
Für hohe Volumen gebaut
Harte Limits pro Server. HTTP 429, wenn Kapazitaet voll. HTTP 414, wenn Pfade zu lang.
256
Maximale Empfaenger auf einem einzelnen Pfad
1,000
Ausstehende unaufgebaute Verbindungen
1,000
Gleichzeitige laufende Streams
5 Min.
TTL vor HTTP-408-Eviction
1,024
Maximale Pfadlaenge in Zeichen
50
Fortschritts-Zuschauer pro Pfad
9 Endpunkte, zwei Befehle, die zählen
POST oder PUT zum Senden. GET zum Empfangen. Alles andere ist Observability.
Observability & UI
{count, plural, =1 {# Endpunkt} other {# Endpunkte}'}GET /health → { status, activePipes }
Datentransfer
{count, plural, =1 {# Endpunkt} other {# Endpunkte}'}POST oder PUT zum Senden · GET zum Empfangen
Named Pipes über das Internet.
Keine SDKs. Kein Auth-Setup. Keine Dateigrößenlimits. Pipe-Container starten und loslegen.