Mari kita bahas ASGI, singkatan dari Asynchronous Server Gateway Interface

 


Mari kita bahas ASGI, singkatan dari Asynchronous Server Gateway Interface.

ASGI vs WSGI – Apa Bedanya?

Fitur WSGI ASGI
Dukungan Async Tidak  Ya
Protokol yang Didukung Hanya HTTP HTTP, WebSocket, dll
Cocok Untuk Aplikasi sinkron (klasik) Aplikasi sinkron & asinkron
Contoh Framework Django (versi lama), Flask Django 3.0+, FastAPI, Starlette

Apa Itu ASGI?

ASGI adalah standar baru yang dibuat untuk menggantikan WSGI. Ia memungkinkan aplikasi Python tidak hanya menangani HTTP request secara sinkron, tetapi juga secara asinkron, seperti:

  • WebSocket

  • HTTP/2

  • Background tasks

ASGI hadir karena web modern membutuhkan konektivitas real-time — hal yang sulit (atau tidak mungkin) dilakukan dengan WSGI.

Contoh Aplikasi ASGI:

async def app(scope, receive, send):
    if scope['type'] == 'http':
        await send({
            'type': 'http.response.start',
            'status': 200,
            'headers': [(b'content-type', b'text/plain')],
        })
        await send({
            'type': 'http.response.body',
            'body': b'Hello, ASGI!',
        })

Mirip seperti WSGI tapi pakai async def, dan bisa menangani berbagai jenis protokol (bukan hanya HTTP saja).

Framework yang Pakai ASGI:

  • FastAPI → ultra cepat, cocok untuk API modern

  • Starlette → ringan dan fleksibel

  • Django 3.0+ → sekarang support ASGI juga

  • Quart → versi async-nya Flask

Server ASGI Populer:

  • Uvicorn (cepat dan ringan)

  • Daphne (dipakai oleh Django Channels)

  • Hypercorn (fitur lengkap)

Kapan Pakai ASGI?

Gunakan ASGI kalau kamu:

  • Butuh WebSocket (chat app, notifikasi real-time)

  • Bangun aplikasi async (pakai async/await)

  • Ingin performa tinggi dengan banyak koneksi aktif

Kalau aplikasimu sederhana dan berbasis HTTP biasa (misalnya blog), WSGI masih cukup kok.

Post a Comment

0 Comments