انتقل إلى المحتوى
الرئيسية / Kit / Pipe
PipeHOODY PIPE

أنابيب مسمّاة عبر الإنترنت

أرسل POST إلى مسار. أرسل GET من نفس المسار. البيانات تتدفق مباشرة من المُرسِل إلى المستقبل — لا bucket، لا S3، لا تخزين.

pipe · نقل حي

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

Zero storage·Real-time streaming·Up to 256 receivers·5-min TTL
kit / pipe / how-it-works
كيف يعمل

البيانات تتدفق خلاله، لا إليه

كل بايت ترسله يصل إلى المستقبلين في الوقت الحقيقي. الخادم سلك، لا مستودع.

المصدر

مُرسل

PUT / POST/pipe/{path}

خادم PIPE

تخزين صفري · حتى 256 مستقبل

GET/pipe/{path}

المستقبل

مُستقبِل

01

المُرسِل يفتح

المُرسِل يرسل POST أو PUT إلى أي مسار. الخادم ينتظر — حتى 5 دقائق — حتى يتصل مستقبل.

02

البايتات تتدفق

البيانات تتدفق بايت بايت عبر الشبكة. لا تخزين مؤقت. لا ملفات مؤقتة. لا خطوة رفع.

03

المستقبلون يتصلون

المستقبلون يرسلون GET إلى نفس المسار ويسحبون البث الحي. حتى 256 مستقبل يمكنهم التوزيع.

kit / pipe / recipes
وصفات

تركيبات Pipe الشائعة

معظم الوصفات أمرا curl — أحدهما للإرسال والآخر للاستقبال.

#1

نقل الملف

تسليم نظير-لنظير، لا تخزين وسيط.

مُرسل ← مستقبِل

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

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

#2

تدفق سجل حي

تتبع سجلات الحاوية في الوقت الحقيقي من أي طرفية.

مُرسل ← مستقبِل

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

# curl …/pipe/logs

#3

مشاركة الشاشة

بث سطح المكتب لما يصل إلى 10 مشاهدين. بدون WebRTC.

مُرسل ← مستقبِل

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

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

#4

مزامنة المجلد

ضغط ونقل وفك ضغط شجرة مجلد في خط أنابيب واحد.

مُرسل ← مستقبِل

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

# curl …/pipe/proj | tar xzf -

#5

النقل المشفّر

مشفّر من طرف إلى طرف — الخادم لا يرى نصاً واضحاً أبداً.

مُرسل ← مستقبِل

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

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

#6

بث التوزيع

وزّع قطعة البناء على 3 مستهلكين بالضبط في آنٍ واحد.

مُرسل ← مستقبِل

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

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

#7

مشاهدة التقدم (ثلاثي الأطراف)

راقب السرعة والوقت المتبقي والبايتات دون استهلاك موضع مستقبل.

مُرسل ← مستقبِل

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

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

kit / pipe / protocols
البروتوكولات والمحتوى

ما يمكن تدفقه عبر أنبوب

أي نوع محتوى لا يمكن تنفيذه كسكربت يتدفق كما هو. أنواع MIME الخطرة تُعاد كتابتها.

application/octet-streamPUT ← GET

ملفات ثنائية وأرشيفات وصور

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

سجلات ومدخلات قياسية وإعداد وتدفقات مخرجات قياسية

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

رفع ملف من المتصفح (الجزء الأول فقط)

/api/v1/pipe/[path]
video/webm، video/mp4PUT ← متصفح

مشاركة الشاشة، فيديو مسجّل

/api/v1/pipe/[path]?video
text/event-stream (SSE)GET متفرج

رصد التقدم، السرعة/الوقت المتبقي/الحالة

/api/v1/pipe/[path]?progress
text/html (معاد كتابته)PUT ← GET

يُعاد كتابته إلى text/plain قبل الإعادة — XSS مُمنَع، البيانات لا تُفقَد

/api/v1/pipe/[path]
ترويسات مخصصةPUT ← GET

X-Hoody-Pipe وبيانات X-Piping تُعاد إعادة توجيه

/api/v1/pipe/[path]

جميع نقاط النهاية على /api/v1/pipe/[path]. الاتجاه يصف من يكتب ومن يقرأ.

kit / pipe / limits
الحدود

مبني للحجم

حدود صارمة مفروضة لكل خادم. HTTP 429 عند امتلاء السعة، HTTP 414 عندما تكون المسارات طويلة جداً.

#1

256

الحد الأقصى للمستقبلين على مسار واحد

#2

1,000

الاتصالات المعلّقة غير المُنشأة

#3

1,000

البثوث المتزامنة الجارية

#4

5 دقائق

TTL قبل طرد HTTP 408

#5

1,024

الحد الأقصى لطول المسار بالأحرف

#6

50

متفرجو التقدم لكل مسار

kit / pipe / endpoints
API

9 نقاط نهاية، أمران مهمان

POST أو PUT للإرسال. GET للاستقبال. كل شيء آخر هو رصد.

الرصد وواجهة المستخدم

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

GET /health → { status, activePipes }

GET
/api/v1/pipe/healthJSON: status, version, activePipes
GET
/api/v1/pipe/versionPlain text version string
GET
/api/v1/pipe/helpSelf-hosted curl examples
GET
/api/v1/pipeBrowser web UI for no-code uploads
GET
/api/v1/pipe/noscriptFallback UI for no-JS browsers
OPTIONS
/api/v1/pipe/{path}CORS preflight

نقل البيانات

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

POST or PUT to send · GET to receive

POST
/api/v1/pipe/{path}Send data; streams [INFO] status back to sender
PUT
/api/v1/pipe/{path}Alias for POST; natural for curl -T file
GET
/api/v1/pipe/{path}Receive data; blocks until sender connects
kit / pipe / cta

أمرا curl وتنتهي

لا SDK. لا إعداد مصادقة. لا حدود لحجم الملف. أطلق حاوية Pipe وابدأ النقل.

اقرأ التوثيق