Ngôn ngữ Google Go (còn gọi là Golang) đã trở thành một trong những lựa chọn hàng đầu để viết các dịch vụ web và API. Nó có khả năng compile thành các code gốc chạy nhanh và các tính năng hữu ích khác cho dịch vụ web, đồng thời ngôn ngữ còn có lượng người dùng rộng lớn.
Dưới đây các framework hiện được sử dụng để phát triển web trong Go.
Beego có thể làm bạn gợi nhớ đến web framework Django dành cho Python. Ngôn ngữ này đi kèm với một loạt các tính năng phổ biến cho ứng dụng web, được tổ chức thành tám mô-đun có thể được sử dụng hoặc bỏ qua khi cần thiết. Ngoài ra, nó cũng bao gồm object-relationship map (ORM) để truy cập dữ liệu, bộ built-in cache handler, session handling tools, cơ chế ghi nhật ký và thư viện cho các operation với những đối tượng HTTP.
Beego tương tự như Django nằm trong các command-line tool. Ví dụ, bạn có thể sử dụng lệnh bee
để tạo một ứng dụng Beego mới hoặc quản lý các ứng dụng hiện có.
Một trong những web framework đầu tiên dành cho Go là Martininhưng dự án đó không còn được tiếp tục nữa. Tuy vậy, các framework ngày nay vẫn luôn lấy cảm hứng từ những tính năng của Martini, vốn vô cùng mạnh mẽ và tiện lợi.
Gin là một trong những dự án như vậy. Nó sử dụng một phiên bản tùy biến của gói httprouter vì tốc độ xử lí cực kì nhanh. Song song đó, nó cung cấp các trình xử lý cho nhiều trường hợp sử dụng phổ biến: middleware, file uploading, logging, binding front-end HTML component với cấu trúc dữ liệu back-end, etc… Các phiên bản API cũng đã ổn định kể từ phiên bản 1.x, vì vậy các thay đổi trong tương lai sẽ không gây crash với các Gin app hiện tại.
Gorilla được xem như một “web toolkit”,chứ không phải là một MVC-style framework. Nó bao gồm các thư viện được sử dụng để giải quyết các khía cạnh khác nhau của việc viết một dịch vụ web: context (cho stashing state trong suốt thời gian yêu cầu), mux (route / dispatch) và các thư viện khác để thực hiện cookie, session, websockets và RPC qua HTTP.
Templates, forms và các phần front-end khác sẽ không bao gồm trong package. Do đó, bạn sẽ phải tự cung cấp chúng.
Echo là một framework nhỏ, chủ yếu dành cho các API. Ví dụ: nó không bao gồm templating system; thay vào đó, bạn phải sử dụng html/template của Go. Tuy nhiên, Echo có cung cấp một số mô-đun trung gian hữu ích thường được sử dụng trong các API, chẳng hạn như compression, proxying, và logging.
Iris được nhiều người cho là “như một Express.js dành cho Go” – như một phiên bản của JavaScript/Node.js web framework sử dụng thiết kế tối thiểu với hầu hết các chức năng được cung cấp bởi các plugin. Iris bao gồm những chức năng MVC cơ bản, cùng với hỗ trợ tích hợp cho phần mềm trung gian, sessions, routing, và caching.
Revel được sáng tạo ra dựa trên cảm hứng từ Ruby on Rails.
Ngoài việc cung cấp MVC cơ bản, Revel cho phép bạn sử dụng component khác một cách tự do để đáp ứng các nhu cầu khác. Caching có thể được thực hiện tự nhiên trong bộ nhớ, hoặc thông qua Memcached hoặc Redis back end. Tuy nhiên, không có ORM gốc cho cơ sở dữ liệu.
Via Techtalk