Episode ini menelusuri kelahiran Fiber tahun 2019 yang terinspirasi Express.js dan dibangun di atas fasthttp, evolusinya dari v1 ke v2 lalu v3 pada Februari 2026, serta masalah yang diselesaikan Fiber dalam hal performa, routing, dan produktivitas developer.

Sebelum menulis kode, penting untuk memahami dari mana Fiber berasal dan masalah apa yang diselesaikannya. Episode 1 membahas sejarah, latar belakang, dan alasan membutuhkan Fiber — termasuk keputusan paling kontroversialnya: memakai fasthttp alih-alih net/http standar Go.
Dengan memahami konteks ini, kalian tidak sekadar menghafal API, tapi tahu mengapa Fiber didesain seperti ini dan kapan keputusan tersebut tepat. Ini juga menjadi bekal penting di episode 22 saat kita membandingkan Fiber dengan Gin, Echo, dan chi.
Fiber diciptakan pada tahun 2019 oleh Fenny dengan misi sederhana: membawa ergonomi Express.js ke ekosistem Go. Express populer karena API-nya yang ringkas — routing satu baris, middleware berantai, dan respons yang mudah. Fiber mengadopsi pola ini sehingga developer Node.js bisa langsung produktif tanpa kurva belajar yang curam.
Yang membedakan Fiber sejak awal: ia dibangun di atas fasthttp, bukan net/http. Fasthttp adalah implementasi HTTP server yang menekankan zero allocation, pengelolaan buffer manual, dan performa tinggi. Konsekuensinya besar — seluruh API Fiber mengikuti semantik fasthttp, dan ini menjadi alasan mengapa Fiber terasa berbeda dari framework Go lainnya.
Perjalanan versi bisa kalian cek langsung dari module proxy Go:
go list -m -versions github.com/gofiber/fiber/v3Output menampilkan semua versi v3 yang pernah dirilis, mulai dari v3.0.0 hingga v3.4.0. go list -m -versions github.com/gofiber/fiber/v3 adalah cara cepat memetakan umur sebuah project sebelum memutuskan mengadopsinya.
Fasthttp didesain untuk skenario dengan lalu lintas sangat tinggi. Ia memakai sync.Pool untuk reuse buffer, menghindari alokasi di hot path, dan menyediakan API yang berorientasi byte. Hasilnya, aplikasi Fiber bisa melayani jauh lebih banyak request per detik dibanding net/http pada perangkat keras yang sama.
Trade-off yang harus dipahami: fasthttp tidak mengimplementasikan http.Handler. Artinya, library yang menuntut http.Handler standar tidak langsung bisa dipakai. Fiber menyediakan paket adaptor untuk menjembatani keduanya, dan kita akan melihat caranya di episode 7 dan 20. Keputusan inilah yang membuat posisi Fiber unik — performa tinggi, tetapi dengan konsekuensi ekosistem yang harus dikelola secara sadar.
Jika diringkas, Fiber menjawab tiga kebutuhan besar yang membuat Go tetap nyaman untuk membangun API modern: routing yang cepat, produktivitas yang tinggi, dan dukungan realtime. Ketiganya hadir dalam satu dependency tanpa harus merakit banyak library.
Masalah pertama yang dipecahkan Fiber adalah kecepatan routing tanpa mengorbankan fitur. Router Fiber menangani path parameter, wildcard, dan constraint dengan alokasi minimal. Di v3, router juga mendapat hooks lifecycle sehingga developer bisa menyisipkan logika pada momen tertentu: saat listen dimulai, sebelum shutdown, dan setelah shutdown.
Masalah kedua adalah produktivitas. Fiber v3 menyediakan binding dari body, query, header, dan URI ke struct; paket extractor untuk mengambil token atau nilai dari berbagai sumber dengan fallback; serta helper respons seperti c.JSON, c.SendString, dan c.SendStream. Hal yang di Node.js butuh library tambahan, di Fiber tersedia secara native.
Masalah ketiga adalah kebutuhan realtime. Melalui github.com/gofiber/contrib/v3/websocket, Fiber menyediakan WebSocket tanpa meninggalkan fiber.Ctx — params, query, dan cookies tetap bisa diakses di dalam koneksi. Kombinasi inilah yang menjadikan Fiber pilihan untuk API plus fitur realtime dalam satu service.
net/http dengan fokus performa dan ekosistem besar.net/http, API yang lengkap, sekarang memasuki versi 5.net/http, kompatibel penuh dengan standard library.ServeMux bawaan Go, tanpa middleware dan tanpa parameter path di versi lama.Fiber memilih fasthttp sehingga berada di jalur yang berbeda dari Gin, Echo, dan chi. Keunggulannya adalah alokasi yang sangat rendah dan throughput tinggi. Konsekuensinya: sebagian library yang mengharapkan http.Handler membutuhkan adaptor (adaptor.New), dan beberapa kebiasaan net/http tidak langsung berlaku. Trade-off ini akan dibedah mendalam di episode 22.
Selain itu, ergonomi Fiber sengaja dibuat menyerupai Express sehingga pola pikir developer Node.js tetap berlaku. Struktur kode berikut menggambarkan betapa dekatnya kedua ekosistem:
package main
import (
"github.com/gofiber/fiber/v3"
"github.com/gofiber/fiber/v3/adaptor"
)
func main() {
app := fiber.New()
app.Get("/", func(c fiber.Ctx) error {
return c.SendString("Fiber berjalan di atas fasthttp")
})
app.Listen(":3000", fiber.ListenConfig{
DisableStartupMessage: true,
})
}Contoh di atas menunjukkan aplikasi Fiber minimal. fiber.New() membuat instance App, dan setiap handler menerima fiber.Ctx yang membungkus fasthttp.RequestCtx. Perhatikan bahwa app.Listen(":3000", fiber.ListenConfig{DisableStartupMessage: true}) mengembalikan error yang harus ditangani — perilaku ini berbeda dari v2 yang memblokir tanpa nilai balik.
Tip
Jangan memilih framework hanya dari benchmark semata. Fiber unggul dalam skenario latency rendah dan allocasi minim, tetapi pastikan ekosistem library yang kalian butuhkan kompatibel dengan fasthttp. Pertimbangan ini akan kembali kita bahas di episode 22.
Inti yang harus dibawa pulang:
go list -m -versions.Di episode 2 selanjutnya kita masuk ke konsep dasar dan arsitektur utama — bagaimana fiber.App bekerja di balik layar, apa itu fiber.Ctx, komponen App, Router, Handler, Middleware, Hooks, hingga default error handler. Ini adalah fondasi mental yang akan membuat semua episode berikutnya terasa masuk akal.