Pular para o conteúdo
STREAMING EM TEMPO REAL
SEM ARMAZENAMENTO
256 RECEPTORES
PUT · POST · GET
CURL-NATIVO
FANOUT
SSE DE PROGRESSO
PRONTO PARA CRIPTOGRAFIA E2E
STREAMING EM TEMPO REAL
SEM ARMAZENAMENTO
256 RECEPTORES
PUT · POST · GET
CURL-NATIVO
FANOUT
SSE DE PROGRESSO
PRONTO PARA CRIPTOGRAFIA E2E
STREAMING EM TEMPO REAL
SEM ARMAZENAMENTO
256 RECEPTORES
PUT · POST · GET
CURL-NATIVO
FANOUT
SSE DE PROGRESSO
PRONTO PARA CRIPTOGRAFIA E2E
STREAMING EM TEMPO REAL
SEM ARMAZENAMENTO
256 RECEPTORES
PUT · POST · GET
CURL-NATIVO
FANOUT
SSE DE PROGRESSO
PRONTO PARA CRIPTOGRAFIA E2E
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 \

https://abc123-def456-pipe-1.node-us-1.containers.hoody.com/api/v1/pipe/report

[INFO] Aguardando receptor...

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

[INFO] Transferência concluída.

Terminal B — Receptor

$ curl https://abc123-def456-pipe-1.node-us-1.containers.hoody.com/api/v1/pipe/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
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.

ORIGEM

remetente

PUT / POST/pipe/{path}

SERVIDOR PIPE

zero armazenamento · até 256 receptores

GET/pipe/{path}

DESTINO

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.

RECEITAS

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

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ê.

LIMITES

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

API

9 Endpoints, Dois Comandos que Importam

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

Observabilidade e UI

6 endpoints

GET /api/v1/pipe/health 200 { status, service, built, started, memory, … }

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

3 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

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