7 Web Framework Go yang Bisa Kamu Jajal

Ridwan Fajar 20 November 2016

7 Web Framework Go yang Bisa Kamu Jajal

Go merupakan salah satu bahasa pemrograman yang difavoritkan oleh backend developer untuk membangun web service. Tidak hanya itu, Go juga menjadi salah satu bahasa yang cukup diminati untuk membangun sebuah microservice. Go dirilis secara resmi oleh Google sebagai bagian dari teknologi internal yang akhirnya dirilis ke publik dengan lisensi open source. Mirip dengan bahasa C, namun Go memiliki sejumlah library yang mudah dan mempermudah developer. Salah satu keunggulan Go yang sudah dikenali adalah adanya fitur konkurensi bawaan, dan waktu compile yang lebih cepat dibandingkan bahasa pemrograman lainnya.

Untuk memulai membuat aplikasi web dengan Go, kamu dapat menjajal 7 web framework berikut untuk menentukan mana web framework yang cocok dengan kamu dan proyek kamu.

1. Macaron

  • Github Star: 1.294
  • Github URL: https://github.com/go-macaron/macaron
  • Official Website: https://www.go-macaron.com
Selection_004

Macaron sejatinya adalah sebuah web framework yang independen. Macaron memiliki sejumlah fitur seperti:

  • Sub-URL routing yang handal
  • Kombinasi router yang fleksibel
  • Nested group router yang tak terbatas
  • Dapat terintegrasi langsung dengan service yang sudah ada
  • Dapat mengetahui perubahan template file saat runtime
  • Dapat menggunakan template dan static file yang disimpan di dalam memori
  • Dapat memasang atau mencabut fitur dengan mengikuti desain modular
  • Router layer yang lebih efisien dan cepat
Selain fitur diatas, Macaron mempunyai sejumlah middleware yang siap pakai untuk membuat aplikasi web dengan Go. Contoh studi kasus yang menggunakan Macaron adalah Gogs (Go Git Service), Peach, Go Walker, Switch, YouGam, Critical Stack Intel.

2. Iris

  • Github Star: 5.432
  • Github URL: https://github.com/kataras/iris
  • Official Website: https://www.iris-go.com
Selection_005

Iris adalah sebuah web framework untuk Go yang ditujukan dengan kemudahan dalam mempelajari dan kustomisasi. Iris menjadi salah satu web framework yang open source tanpa ingin adanya campur tangan dari perusahaan komersil. Iris memiliki sebuah buku yang berjudul "Practical Guide to Iris Web Framework" ditulis oleh Gerasimos Maropoulos. Sedangkan Iris sendiri digadang oleh rekannya yang bernama Makis Maropoulos.

Beberapa fitur unggulan Iris antara lain:

  • Berbagai pilihan template engine
  • Dukungan TypeScript
  • Dapat menggunakan Online IDE
  • Dukungan Iris Online Control
  • subdomain
  • named path parameter
  • halaman error HTTP yang dapat dibuat khusus
  • internasionalisasi
  • binding data
  • streaming
  • middleware
  • session
  • realtime
  • context param
  • plugin yang dapat dibuat sendiri
  • dukungan penuh terhadap berbagai metode HTTP
  • dukungan mengelompokkan route dengan menggunakan Party
  • keamanan pada transport layer
  • multi server instance
  • zero configuration
  • zero allocation

3. Echo

  • Github Star: 5.838
  • Github URL: https://github.com/labstack/echo
  • Official Website: https://echo.labstack.com
Selection_006

Echo mengklaim dirinya sebagai web framework yang cepat dan gak ribet untuk Go. Dikembangkan oleh sebuah perusahaan bernama LabStack, Echo memiliki sejumlah fitur penting seperti berikut:

  • HTTP router yang dioptimasi lebih cerdas untuk memilih route dengan prioritas yang lebih penting
  • Grup untuk beberapa API
  • Middleware yang dapat dikembangkan lebih lanjut
  • Memasang middleware pada tingkat root, group, atau route
  • Data binding untuk JSON, XML, dan form payload
  • Berbagai function praktis untuk mengirim berbagai HTTP response
  • Penanganan error HTTP terpusat
  • Template rendering dengan berbagai template engine
  • Tentukan sendiri format-mu untuk logger
  • Sangat mudah dikostumisasi
  • TLS otomatis melalui Let's Encrypt
  • Mekanisme shutdown bawaan yang sangat bagus

4. Goa

  • Github Star: 1.472
  • Github URL: https://github.com/goadesign/goa
  • Official Website: https://www.goa.design
Selection_007

Goa mengklaim dirinya sebagai web framework yang fokus dan mendekati arsitektur microservice dengan menggunakan Go. Goa memiliki fitur - fitur berikut disamping dokumentasinya yang jelas dan cukup bagus:

  • code generation, Goa memiliki tools yang dinamakan dengan goagen untuk membantu Anda tidak menulis kode sama yang berulang. Anda dapat membuat kode otomatis dengan goagen
  • powerful context, request handlers ditangani dengan menggunakan mekanisme endpoint specific context
  • Dengan menggunakan Goa DSL, kamu dapat membuat endpoint yang didesain dengan baik
  • Keamanan service yang dibuat oleh Goa pun terjamin keamanannya
  • Swagger terintegrasi dengan Goa
Goa dikembangkan oleh Raphael Simmons beserta kontributor lainnya.

5. Gin

  • Github Star: 8.059
  • Github URL: https://github.com/gin-gonic/gin
  • Official Website: https://gin-gonic.github.io
Selection_008

Gin dikembangkan oleh Manu Martinez-Almeida. Tidak hanya terinspirasi oleh Martini, sebuah web framework Go lainya. Gin menggunakan juga httprouter yang dikembangkan oleh Julien Schmidt. Struktur kodenya pun tidak terlalu berbeda jauh dengan Express.js, sehingga Anda akan akrab bila menggunakan Gin. Performa kode yang dibuat dengan Gin diklaim lebih cepat 40 kali dibandingkan Martini.

Beberapa fitur yang dimiliki oleh Gin antara lain:

  • Validasi struktur JSON
  • Dukungan terhadap penempatan middleware di tingkat route, global, atau group.
  • Berbagai middleware yang siap digunakan
  • Kompatibilitas dengan Martini
  • Bebas crash dan akan pulih beberapa saat setelah panic
  • Integrasi dengan Sentry untuk laporan error
  • Sistem rendering bawaan dengan menampilkan respon JSON, XML, dan HTML
  • Dapat membuat middleware sendiri

6. Revel

  • Github Star: 7.539
  • Github URL: https://github.com/revel/revel
  • Official Website: https://revel.github.io
Selection_009

Revel menjadi web framework dengan peringkat ketiga terpopuler saat ini. Memiliki tagline "A High Productivity Web Framework", Revel menyajikan berbagai fitur unggulan untuk kamu yang ingin membangun aplikasi web menggunakan Go. Revel sendiri mengklaim bahwa beberapa komponennya terinspirasi oleh Django, web framework untuk Python.

Selain dokumentasi yang lengkap, Revel memiliki beberapa fitur penting seperti berikut:

  • hot code reload, kamu tidak perlu khawatir untuk mematikan / menyalakan web framework berikut
  • comprehensive, Revel menyediakan berbagai modul untuk routing, parameter parsing, validation, session/flash, templating, caching, job running, internationalization, dan testing framework
  • high performance, Revel dibangun diatas Go HTTP Server yang memiliki kekuatan menangani request 3 - 10 kali lebih banyak ketimbang Ruby on Rails
  • synchronous, setiap request berjalan pada goroutine tersendiri. Kamu tidka perlu khawatir dengan callback
  • stateless, Revel menyediakan primitive yang menjaga web tier tetap stateless untuk scaling.
  • modular, Revel dibangun dengan middleware yang disusun rapi dengan istilah filter. Kamu dapat melakukan kustomisasi terhadap filter - filter tersebut.

7. Beego

  • Github Star: 8.763
  • Github URL: https://github.com/astaxie/beego
  • Official Website: https://www.beego.me
Selection_010

Beego adalah sebuah web framework untuk Go yang dikembangkan oleh Astaxie, seorang pengguna Github yang berasal dari negeri tirai bambu. Beego dibangun untuk menciptakan lingkungan rapid development untuk membuat aplikasi Go. Dapat digunakan untuk mengembangkan API, aplikasi web, dan backend service dengan cepat. Mendukung RESTful, dan terinspirasi oleh Tornado, Sinatra, dan Flask yang dipadu dengan fitur unggulan Go seperti interface dan struct.

Beberapa fitur yang dimiliki Go antara lain:

  • Object Relatioinal Mapping untuk PostgreSQL, MySQL, dan SQLite3
  • Modul logging
  • Modul caching
  • Modul config yang mempermudah pengelolaan konfigurasi
  • Dukungan arsitektur model, view, controller
  • Dukungan terhadap session dan flash message
  • Membantu kamu untuk membuat templating pada halaman web yang lebih baik
  • Dukungan HTTP Verb seperti PUT, POST, DELETE, GET, POST, HEAD, dan OPTION
  • Modul httplibs untuk melakukan operasi HTTP seperti Curl atau Requests
  • Sistem filter untuk mengatur masuknya request yang masuk
  • Validasi form
  • Pagination untuk hasil query
  • Query Builder bila kamu tidak menginginkan ORM
  • Modul test case untuk melakukan pengujian aplikasi yang lebih baik
  • dan banyak lainnya
Contoh perusahaan yang sudah menggunakan Beego antara lain GoWalker, Youdao, Bmob, Weico, Sudo Cihna, Very Hour, I Beautys, Interia, Flipkart. Studi kasus tersebut digunakan untuk membangun service dan mesin pencarian dengan jumlah request mencapai puluhan juta.

(data terkait github star dilihat pada tanggal 18 November 2016)

(rfs/github)