⚡ Cloudflare Workers — Full Guide

Workers by Cloudflare

دليلك الشامل لعالم الـ Serverless Edge Computing — اشغّل كودك في أكثر من 300 موقع حول العالم
Your complete guide to Serverless Edge Computing — run your code in 300+ locations worldwide with zero cold starts
Edge Runtime JS / TS / Rust / Python Free Tier ✓ Wrangler CLI
ما هو Cloudflare Workers؟ What is Cloudflare Workers?

بدون سيرفرServerless

ما تحتاج تشتري سيرفر ولا تدفع إيجار شهري — تكتب الكود وترفعه، وCloudflare يشغله عند الطلب

No server rental, no monthly bills — write your code, deploy it, Cloudflare runs it on demand

🌍

Edge NetworkEdge Network

كودك يشتغل في أقرب نقطة للمستخدم من بين 300+ موقع — السرعة خرافية والـ latency صفر تقريباً

Your code runs at the nearest of 300+ locations to the user — ultra-low latency worldwide

🔧

V8 IsolatesV8 Isolates

يستخدم نفس محرك Chrome بدل Docker — يشتغل في ميلي ثانية بدون Cold Start الممل

Uses Chrome's V8 engine instead of Docker containers — starts in milliseconds, no cold starts

💰

Free Tier سخيGenerous Free Tier

100,000 طلب يومياً مجاناً — كافي لأي مشروع شخصي أو بروتوتايب

100,000 requests/day free — enough for any personal project or prototype

كيف يشتغل؟ How does it work?
👤
المستخدمUser
🌐
Cloudflare DNS

Worker Code
🗄️
KV / D1 / R2
📤
الردResponse

كل طلب → Edge Location أقرب للمستخدم → Worker يتفاعل مع Storage أو API → يرجع الرد خلال <5ms Each request → nearest Edge location → Worker interacts with Storage or API → responds in <5ms

أمثلة الكود Code Examples

🔹 مثال 1 — Worker بسيط يرد على الطلبات:

🔹 Example 1 — Basic Worker that responds to requests:

worker.js
// نقطة الدخول الرئيسية لكل Worker
export default {
  async fetch(request, env, ctx) {
    const url = new URL(request.url);
    const name = url.searchParams.get('name') || 'Ayoub';

    return new Response(
      `مرحباً يا ${name}! من Worker على الـ Edge 🚀`,
      {
        status: 200,
        headers: {
          'Content-Type': 'text/plain; charset=utf-8',
          'Access-Control-Allow-Origin': '*'
        }
      }
    );
  }
};

🔹 مثال 2 — API Proxy مع Routing:

🔹 Example 2 — API Proxy with Routing:

router.js
export default {
  async fetch(req, env) {
    const { pathname } = new URL(req.url);

    // Routing بسيط
    if (pathname === '/api/time') {
      return Response.json({
        time: new Date().toISOString(),
        city: req.cf?.city,      // مدينة المستخدم تلقائياً!
        country: req.cf?.country  // بلده كمان
      });
    }

    if (pathname === '/api/proxy') {
      // Proxy لـ API خارجي بدون CORS مشاكل
      const data = await fetch('https://api.github.com/users/algoushah');
      return new Response(data.body, {
        headers: { 'Access-Control-Allow-Origin': '*' }
      });
    }

    return new Response('404 - مو موجود', { status: 404 });
  }
};

🔹 مثال 3 — KV Storage للحفظ والقراءة:

🔹 Example 3 — KV Storage for read/write:

kv-worker.js
// wrangler.toml: [[kv_namespaces]] binding = "MY_KV"
export default {
  async fetch(req, env) {
    const method = req.method;

    if (method === 'POST') {
      const { key, value } = await req.json();
      await env.MY_KV.put(key, value, {
        expirationTtl: 86400  // ينتهي بعد يوم
      });
      return Response.json({ ok: true, msg: 'تم الحفظ ✅' });
    }

    if (method === 'GET') {
      const key = new URL(req.url).searchParams.get('key');
      const val = await env.MY_KV.get(key);
      return Response.json({ key, value: val ?? 'مو موجود' });
    }
  }
};

🔹 أوامر النشر بـ Wrangler CLI:

🔹 Deploy commands with Wrangler CLI:

terminal
# تثبيت Wrangler
$ npm install -g wrangler

# تسجيل الدخول
$ wrangler login

# إنشاء مشروع جديد
$ wrangler init my-worker

# تشغيل محلياً للتجربة
$ wrangler dev

# نشر على Edge مباشرة
$ wrangler deploy

# إضافة Custom Domain
$ wrangler publish --route api.ayoub.pw/*
وش تقدر تسوي بـ Workers؟ What can you build with Workers?
01

API ProxyAPI Proxy

حل مشكلة CORS بين الفرونت والـ API

Solve CORS issues between frontend and APIs

02

Auth MiddlewareAuth Middleware

فلترة الطلبات والـ JWT Verification

Filter requests and verify JWT tokens

03

CachingSmart Caching

خزّن الـ API responses على الـ Edge

Cache API responses at the edge

04

Image ResizeImage Resize

عدّل الصور on-the-fly بدون سيرفر

Transform images on-the-fly, no server needed

05

Webhook HandlerWebhook Handler

استقبل Webhooks من Stripe أو GitHub

Receive webhooks from Stripe or GitHub

06

A/B TestingA/B Testing

وجّه المستخدمين لنسخ مختلفة من الموقع

Route users to different site versions

07

Bot ProtectionBot Protection

احمي موقعك من الـ scrapers والـ bots

Protect your site from scrapers and bots

08

Geo RedirectGeo Redirect

وجّه المستخدمين حسب بلدهم تلقائياً

Redirect users based on their country automatically

المقارنة مع البدائل Comparison with alternatives
الخاصيةFeature CF Workers AWS Lambda Vercel Functions
وقت الاستجابةResponse time <5ms ~100ms ~50ms
Cold StartCold Start لا يوجدNone موجودYes موجودYes
Free Tier 100K/day 1M/month 100K/day
المواقع العالميةGlobal locations 300+ ~30 ~30
Node.js APIs جزئيPartial كاملFull كاملFull
سهولة الإعدادEase of setup ⭐⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐⭐
أفكار لمشاريعك 🎯 Ideas for your projects 🎯
📥

Downloader API

حوّل Ayoub Downloader ليمر عبر Worker — يحل مشاكل CORS ويخفي الـ VPS endpoint

Route Ayoub Downloader through a Worker — fixes CORS and hides the VPS endpoint

🔐

API Key Guard

خلّ ProMT يكال API calls من Worker بدل الفرونت — مفاتيحك تبقى آمنة 100%

Route ProMT API calls through a Worker — keep your API keys server-side and secure

📰

News RSS Proxy

Worker يجيب RSS feeds ويعالجها ويحفظها في KV — يحل مشكلة CORS في AyOuB NeWs

Worker fetches and caches RSS feeds in KV — solves CORS issues in AyOuB NeWs

⚡ Cloudflare Workers — Edge Computing للجميعEdge Computing for everyone — ayoub.pw