September 16, 2026

Apa Itu Starlette Python? Framework ASGI Ringan di Balik FastAPI

Banner Artikel - Starlette Python adalah

Kalau Anda pernah menggunakan FastAPI, kemungkinan besar Anda juga pernah bersinggungan dengan Starlette. Starlette adalah framework dan toolkit ASGI yang ringan, modular, dan dirancang untuk membangun aplikasi web asynchronous di Python.

Starlette bukan hanya fondasi yang digunakan FastAPI, tetapi juga bisa digunakan secara langsung ketika developer membutuhkan kontrol lebih besar terhadap arsitektur aplikasi.

Artikel ini saya buat untuk membantu Anda memahami apa itu Starlette, cara kerjanya, hubungannya dengan FastAPI, serta kapan Starlette cocok digunakan dalam pengembangan aplikasi Python.

Ringkasan Cepat

  • Starlette adalah framework atau toolkit ASGI yang ringan untuk membangun layanan web async di Python.
  • Starlette mendukung hal-hal inti seperti routing, middleware, WebSocket, background tasks, serta startup/shutdown events.
  • ASGI adalah spesifikasi antarmuka antara server protokol (web server) dan aplikasi Python agar bisa menangani HTTP sekaligus protokol lain seperti WebSocket.

Apa Itu Starlette?

Starlette adalah framework dan toolkit ASGI yang ringan untuk membangun aplikasi web asynchronous menggunakan Python. Starlette dirancang agar sederhana, modular, dan cukup fleksibel untuk digunakan sebagai framework maupun kumpulan komponen ASGI.

Namun, Starlette tidak mencoba menjadi framework yang menyediakan semuanya. Fokusnya adalah menyediakan building blocks penting untuk aplikasi web, seperti:

  • Routing
  • Middleware
  • Request dan response
  • WebSocket
  • Background tasks
  • Startup dan shutdown events
  • Testing
  • Static files dan streaming response

Karena desainnya modular, developer bisa menggunakan seluruh framework atau hanya mengambil komponen tertentu sesuai kebutuhan.

Apa Itu ASGI dan Kenapa Penting?

ASGI (Asynchronous Server Gateway Interface) adalah standar yang menjadi penghubung antara server dan aplikasi Python, terutama untuk aplikasi yang membutuhkan komunikasi asynchronous.

Berbeda dari pendekatan WSGI yang berfokus pada pola request dan response HTTP, ASGI dirancang untuk menangani berbagai pola komunikasi, termasuk HTTP, HTTP/2, dan WebSocket.

Sederhananya, ASGI memungkinkan aplikasi Python menangani:

  • Request HTTP biasa
  • Komunikasi asynchronous
  • WebSocket
  • Event yang berlangsung selama koneksi aktif

Inilah salah satu alasan Starlette cocok digunakan untuk aplikasi web modern yang membutuhkan komunikasi real-time.

Starlette Dipakai untuk Apa?

Starlette cocok digunakan ketika Anda membutuhkan framework web yang ringan tetapi tetap memiliki fitur penting untuk aplikasi asynchronous.

Beberapa contoh penggunaannya:

  • API atau service internal
  • Microservices
  • Aplikasi real-time
  • Dashboard dengan WebSocket
  • Sistem notifikasi
  • Aplikasi chat
  • Service yang membutuhkan kontrol lebih besar terhadap stack web

Kelebihan Starlette adalah fiturnya cukup lengkap untuk digunakan langsung, tetapi tetap minimal sehingga developer memiliki banyak kebebasan dalam menentukan komponen aplikasi.

Komponen dan Fitur Utama Starlette

Starlette menyediakan berbagai komponen yang umum dibutuhkan dalam pengembangan aplikasi web modern.

1. Routing

Routing digunakan untuk menentukan handler yang akan menangani URL tertentu.

Misalnya:

  • /
  • /users
  • /users/{username}

Starlette menyediakan Route, parameter URL, Mount, hingga WebSocketRoute untuk kebutuhan routing HTTP maupun WebSocket.

2. Middleware

Middleware memungkinkan Anda menambahkan fungsi tertentu yang berlaku di berbagai endpoint.

Contohnya:

  • CORS
  • Logging
  • HTTPS redirect
  • GZip
  • Session
  • Security headers

Starlette juga mendukung pembuatan middleware sendiri menggunakan interface ASGI.

3. Request dan Response

Starlette menyediakan komponen untuk menangani request dan menghasilkan berbagai jenis response.

Misalnya:

  • JSON response
  • HTML response
  • Streaming response
  • File response
  • Static files

Dengan begitu, developer tidak perlu membangun mekanisme HTTP dari awal.

4. WebSocket

Starlette memiliki dukungan WebSocket bawaan sehingga cocok untuk aplikasi yang membutuhkan komunikasi dua arah secara real-time.

Contohnya:

  • Live chat
  • Notifikasi real-time
  • Live dashboard
  • Status aplikasi secara langsung

5. Background Tasks

Starlette menyediakan BackgroundTask untuk menjalankan pekerjaan tertentu setelah response dikirim ke pengguna.

Contohnya:

  • Mengirim email
  • Membuat notifikasi
  • Menyimpan aktivitas
  • Menjalankan proses ringan lainnya

Namun, background task bawaan ini berjalan di dalam proses aplikasi, sehingga lebih cocok untuk pekerjaan ringan daripada pekerjaan berat atau sistem job queue berskala besar.

6. Startup dan Shutdown

Lifecycle events dapat digunakan untuk menyiapkan resource ketika aplikasi dimulai dan melakukan cleanup ketika aplikasi berhenti.

Contohnya:

  • Membuka koneksi database
  • Menyiapkan cache
  • Membuat client ke service lain
  • Menutup koneksi saat aplikasi berhenti

7. Test Client

Starlette menyediakan test client berbasis httpx sehingga endpoint dapat diuji tanpa harus menjalankan server eksternal secara terpisah.

Contoh Starlette Paling Sederhana

Untuk membuat aplikasi sederhana, Anda dapat membuat objek Starlette, menentukan route, kemudian menjalankannya menggunakan ASGI server seperti Uvicorn.

Contohnya:

from starlette.applications import Starlette
from starlette.responses import JSONResponse
from starlette.routing import Route

async def homepage(request):
    return JSONResponse({"hello": "world"})

app = Starlette(
    debug=True,
    routes=[
        Route("/", homepage),
    ],
)

Kemudian jalankan menggunakan:

uvicorn main:app

Secara sederhana, alurnya menjadi:

Client → Uvicorn → Starlette → Handler → Response

Uvicorn bertugas sebagai ASGI server, sedangkan Starlette menangani routing dan kebutuhan web aplikasi.

Starlette vs FastAPI vs Django

Ketiga framework ini memiliki fokus yang berbeda. Cara paling mudah membedakannya adalah dari tingkat abstraksi dan kelengkapan fiturnya.

Starlette

Fokus: framework web ASGI yang ringan dan fleksibel.

Cocok jika Anda:

  • Membutuhkan kontrol lebih besar
  • Ingin stack yang minimal
  • Membuat microservices
  • Membutuhkan WebSocket
  • Ingin menentukan sendiri komponen aplikasi

FastAPI

Fokus: pengembangan API dengan pengalaman developer yang lebih praktis.

FastAPI dibangun di atas Starlette dan menambahkan berbagai fitur untuk pengembangan API, termasuk validasi data dan dokumentasi API otomatis.

Cocok jika Anda:

  • Membuat REST API
  • Membutuhkan validasi data
  • Membutuhkan OpenAPI
  • Ingin proses development lebih cepat

Django

Fokus: framework web yang lebih lengkap.

Django cocok untuk aplikasi yang membutuhkan banyak fitur bawaan seperti:

  • ORM
  • Admin panel
  • Authentication
  • Struktur aplikasi yang lebih lengkap

Jadi, Pilih yang Mana?

  • Gunakan Starlette jika Anda membutuhkan fondasi ASGI yang ringan dan fleksibel.
  • Gunakan FastAPI jika fokus utama Anda adalah membangun API dengan fitur produktivitas yang lebih lengkap.
  • Gunakan Django jika Anda membutuhkan framework web yang lebih komprehensif dengan banyak fitur bawaan.

Kapan Sebaiknya Menggunakan Starlette?

Starlette cocok ketika Anda ingin membangun aplikasi asynchronous tanpa terlalu banyak abstraksi dari framework.

Beberapa skenario yang cocok antara lain:

  • Microservices
  • API internal
  • Service asynchronous
  • Aplikasi WebSocket
  • Live dashboard
  • Sistem notifikasi real-time
  • Aplikasi yang membutuhkan kontrol terhadap middleware dan routing

Sebaliknya, Starlette mungkin kurang cocok jika Anda mencari framework “baterai lengkap” yang sudah menyediakan ORM, admin panel, dan berbagai fitur aplikasi bisnis secara bawaan.

Kelebihan dan Kekurangan Starlette

Kelebihan

  • Ringan dan memiliki sedikit dependency.
  • Mendukung ASGI secara native.
  • Mendukung WebSocket.
  • Memiliki middleware yang cukup lengkap.
  • Mendukung background tasks.
  • Modular dan fleksibel.
  • Bisa digunakan sebagai framework maupun toolkit.

Kekurangan

  • Tidak menyediakan fitur selengkap Django.
  • Tidak memiliki ORM bawaan.
  • Developer perlu memilih dan mengatur beberapa komponen sendiri.
  • Untuk API yang membutuhkan banyak fitur otomatis, FastAPI bisa lebih praktis.

Jadi, kekuatan Starlette justru ada pada kesederhanaannya. Anda mendapatkan fondasi web yang kuat tanpa harus mengikuti terlalu banyak opini dari framework.

Checklist Sebelum Deploy Starlette ke Produksi

Sebelum aplikasi Starlette digunakan di production, jangan hanya fokus pada kode. Infrastruktur dan konfigurasi deployment juga perlu diperhatikan.

Gunakan checklist berikut:

  • Gunakan ASGI server seperti Uvicorn.
  • Siapkan logging yang jelas.
  • Gunakan request ID untuk membantu tracing.
  • Atur CORS sesuai kebutuhan.
  • Siapkan rate limiting jika diperlukan.
  • Simpan secret menggunakan secrets management.
  • Buat health check endpoint.
  • Lakukan load testing sederhana.
  • Siapkan monitoring dan alerting.
  • Pastikan konfigurasi production tidak menggunakan debug mode.

Dengan checklist tersebut, proses deployment akan lebih siap dan lebih mudah dipantau ketika aplikasi mulai menerima traffic.

Starlette Membutuhkan Infrastruktur yang Mudah Dikontrol

Ketika aplikasi Starlette atau FastAPI mulai digunakan untuk API dan microservices, Anda biasanya membutuhkan server yang memberikan kontrol terhadap environment aplikasi, reverse proxy, TLS, monitoring, hingga scaling.

Salah satu opsi yang bisa dipertimbangkan adalah VPS KVM dari Rumahweb. Layanannya menggunakan virtualisasi KVM dengan resource terisolasi, SSD storage, DDoS protection, serta dua availability zone. Rumahweb juga mencantumkan jaminan SLA uptime 99,9%, sertifikasi ISO 27001, dan support 24/7.

FAQ

1. Starlette itu framework atau toolkit?

Keduanya. Starlette bisa dipakai sebagai framework lengkap, atau sebagai toolkit ASGI karena komponennya modular.

2. Apakah Starlette sama dengan FastAPI?

Tidak. FastAPI dibangun di atas Starlette dan menambahkan fitur high-level seperti validasi data dan dokumentasi OpenAPI.

3. Starlette pakai server apa?

Starlette butuh ASGI server untuk berjalan, misalnya Uvicorn.

4. Apakah Starlette cocok untuk WebSocket?

Ya, Starlette punya dukungan WebSocket bawaan.

5. Kapan sebaiknya pilih Django daripada Starlette?

Jika Anda butuh framework monolit dengan ORM dan admin panel bawaan, Django biasanya lebih cocok.

Kesimpulan

Starlette adalah framework ASGI berbasis Python async yang sangat ringan dan fleksibel untuk membangun layanan web modern. Solusi ini ideal bagi Anda yang menginginkan kontrol penuh terhadap struktur kode dengan beban sistem (overhead) yang minimal.

Kendati demikian, jika prioritas utama Anda adalah membangun API publik dengan cepat dan efisien, FastAPI sering kali menjadi pilihan yang lebih praktis. Gunakan Starlette saat proyek membutuhkan fondasi yang minimalis dan tim siap merakit komponen pendukung lainnya secara mandiri sesuai kebutuhan.

Referensi

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rating rata-rata 0 / 5. Vote count: 0

Belum ada vote hingga saat ini!

Kami mohon maaf artikel ini kurang berguna untuk Anda!

Mari kita perbaiki artikel ini!

Beri tahu kami bagaimana kami dapat meningkatkan artikel ini?

Related Post