Pular para o conteúdo
início / kit / pipe
PipeHOODY PIPE

Pipes Nomeados Pela Internet

POST para um caminho. GET do mesmo caminho. Os dados fluem diretamente do remetente ao receptor — sem buffering, sem uploads, sem armazenamento. Apenas HTTP.

pipe · transferência ao vivo

Terminal A — Remetente

$ curl -T report.pdf \

…/pipe/my-report

[INFO] Aguardando receptor...

[INFO] Transmitindo para 1 receptor(es)...

[INFO] Transferência concluída.

Terminal B — Receptor

$ curl \

…/pipe/my-report

-o report.pdf

% Total report.pdf

100 2.4M 100 2.4M 0 0 1.8M

Armazenamento zero·Transmissão em tempo real·Até 256 receptores·TTL de 5 min
kit / pipe / how-it-works
COMO FUNCIONA

Os Dados Fluem Através, Não Para Dentro

Cada byte que você envia chega aos receptores em tempo real. O servidor é um fio, não um armazém.

SOURCE

remetente

PUT / POST/pipe/{path}

SERVIDOR PIPE

zero armazenamento · até 256 receptores

GET/pipe/{path}

SINK

receptor

01

Remetente abre

O remetente faz POST ou PUT para qualquer caminho. O servidor aguarda — até 5 minutos — para um receptor se conectar.

02

Bytes fluem

Os dados transmitem byte a byte pelo fio. Zero buffering. Sem arquivos temporários. Sem etapa de upload.

03

Receptores se conectam

Receptores fazem GET no mesmo caminho e puxam o stream ao vivo. Até 256 receptores podem fazer fan-out de um único remetente.

kit / pipe / recipes
RECIPES

Composições Comuns de Pipe

A maioria das receitas são dois comandos curl — um para enviar, um para receber.

#1

Transferência de Arquivo

Entrega peer-to-peer, sem armazenamento intermediário.

remetente → receptor

$ curl -T report.pdf …/pipe/report

# curl …/pipe/report -o report.pdf

#2

Stream de Log ao Vivo

Acompanhe os logs de um contêiner em tempo real de qualquer terminal.

remetente → receptor

$ tail -f app.log | curl -T - …/pipe/logs

# curl …/pipe/logs

#3

Compartilhamento de Tela

Transmita o desktop para até 10 espectadores. Sem WebRTC.

remetente → receptor

$ ffmpeg … | curl -T - …/pipe/screen?n=10

# browser: …/pipe/screen?n=10&video

#4

Sincronização de Diretório

Empacote, transmita e descompacte uma árvore de diretório em um único pipeline.

remetente → receptor

$ tar czf - ./project | curl -T - …/pipe/proj

# curl …/pipe/proj | tar xzf -

#5

Transferência Criptografada

Criptografia E2E — o servidor nunca vê o texto puro.

remetente → receptor

$ openssl enc … < secret.doc | curl -T - …/pipe/enc

# curl …/pipe/enc | openssl enc -d …

#6

Broadcast Fan-Out

Distribua um artefato de build para exatamente 3 consumidores simultaneamente.

remetente → receptor

$ curl -T build.zip …/pipe/release?n=3

# curl …/pipe/release?n=3 (×3 receivers)

#7

Espectador de Progresso (3 partes)

Monitore velocidade, ETA e bytes sem ocupar um slot de receptor.

remetente → receptor

$ curl -T dataset.tar.gz …/pipe/ds (sender)

# curl …/pipe/ds + browser: …/pipe/ds?progress

kit / pipe / protocols
PROTOCOLOS E CONTEÚDO

O Que Pode Fluir por um Pipe

Qualquer Content-Type que não seja executável como script flui verbatim. Tipos MIME perigosos são reescritos para text/plain — os dados não são descartados, o XSS é prevenido.

application/octet-streamPUT → GET

Arquivos binários, arquivos compactados, imagens

/api/v1/pipe/[path]
text/plainPOST → GET

Logs, stdin, config, streams stdout

/api/v1/pipe/[path]
multipart/form-dataPOST → GET

Upload de arquivo pelo browser (apenas primeira parte)

/api/v1/pipe/[path]
video/webm, video/mp4PUT → browser

Compartilhamento de tela, vídeo gravado

/api/v1/pipe/[path]?video
text/event-stream (SSE)GET espectador

Monitoramento de progresso, velocidade/ETA/estado

/api/v1/pipe/[path]?progress
text/html (reescrito)PUT → GET

Reescrito para text/plain antes de encaminhar — XSS prevenido, dados não descartados

/api/v1/pipe/[path]
Cabeçalhos customizadosPUT → GET

Metadados X-Hoody-Pipe, X-Piping encaminhados

/api/v1/pipe/[path]

Todos os endpoints vivem em /api/v1/pipe/[path]. Direção descreve quem escreve, quem lê.

kit / pipe / limits
LIMITS

Construído para Volume

Limites rígidos aplicados por servidor. HTTP 429 quando a capacidade está cheia, HTTP 414 quando os caminhos são muito longos.

#1

256

Máximo de receptores em um único caminho

#2

1,000

Conexões pendentes não estabelecidas

#3

1,000

Streams simultâneos em andamento

#4

5 min

TTL antes da expulsão HTTP 408

#5

1,024

Comprimento máximo do caminho em caracteres

#6

50

Espectadores de progresso por caminho

kit / pipe / endpoints
API

9 Endpoints, Dois Comandos que Importam

POST ou PUT para enviar. GET para receber. Todo o resto é observabilidade.

Observabilidade e UI

{count, plural, =1 {# endpoint} other {# endpoints}'}

GET /health → { status, activePipes }

GET
/api/v1/pipe/healthJSON: status, version, activePipes
GET
/api/v1/pipe/versionString de versão em texto puro
GET
/api/v1/pipe/helpExemplos curl auto-hospedados
GET
/api/v1/pipeIU web de navegador para uploads sem código
GET
/api/v1/pipe/noscriptIU alternativa para navegadores sem-JS
OPTIONS
/api/v1/pipe/{path}Preflight CORS

Transferência de Dados

{count, plural, =1 {# endpoint} other {# endpoints}'}

POST ou PUT para enviar · GET para receber

POST
/api/v1/pipe/{path}Enviar dados; transmite status [INFO] de volta ao remetente
PUT
/api/v1/pipe/{path}Alias para POST; natural para curl -T arquivo
GET
/api/v1/pipe/{path}Receber dados; bloqueia até o remetente se conectar
kit / pipe / cta

A Dois Comandos Curl de Distância

Sem SDKs. Sem configuração de auth. Sem limites de tamanho de arquivo. Crie um contêiner Pipe e comece a transferir.

Ler a Documentação