Skip to content

Go Web Frameworks and Toolkits. Example projects with popular and recently updated web frameworks and toolkits.

Notifications You must be signed in to change notification settings

CoderVlogger/go-web-frameworks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

go-web-frameworks

Example web application projects with top popular and recently active Go lang web frameworks and toolkits.

I am implementing the same features in all frameworks and compare them occasionally.

Currently checking:

Table of Contents

Project Structure

This repository is a monorepo, which means it contains all the packages in the same repository.

In the root directory, there is a folder for each web framework. These folders contain the most recent state of the demo project for a given framework. For example, directory fiber is the current final state of the project for the Fiber web framework.

Additionally, in _step_by_step and _steps_by_topics directories, you can final tutorial steps grouped by framework and topics accordingly.

Additionally,

  • api directory contains API specifications as a README file.
  • pkg directory contains a separate Go package used as a shared code for errors, models, and storage layer.

Go Project Layout

Check [STRUCTURE.md][] for information about the Go project layout for each demo app.

Features

List of checked features:

  • "Hello, World!" and simple JSON response;
  • CRUD JSON API for the example entity;
  • Paging and error handling;
  • Parsing query params;
  • Accepting and parsing form data;
  • Exposing static assets via an endpoint;
  • Building website pages with templates;
  • MVC Pattern (model, view, controller);
  • Authentication and Authorization;
  • Documentation and Swagger;
  • Framework specific testing (if there is anything);
  • Optimization (e.g. compression with GZIP);
  • Security (CORS for example);

Additionaly, some examples with:

  • CI/CD using GitHub Actions;
  • Logging, tracing, and metrics;
  • Docker and Docker Compos;
  • Database and ORM;
  • Work with MySQL;
  • Work with PostgreSQL;
  • Work with MongoDB;
  • Work with Redis;
  • Work with Kafka;

Current Progress

Feature gin echo iris fiber micro goa gorilla
Final Project Structure 👷🏼‍♂️ 👷🏼‍♂️
"Hello, World!" and simple JSON response
CRUD JSON API for the example entity
Paging and error handling
Parsing query params
Accepting and parsing form data 👷🏼‍♂️ 👷🏼‍♂️
Exposing static assets via an endpoint 👷🏼‍♂️
Building website pages with templates 👷🏼‍♂️
MVC Pattern (model, view, controller)
Authentication and Authorization

Related Resources

Live Streams

I host live streams on YouTube, Twitch, and Facebook Watch about building this project. Follow me on Twitter for announcements.

Accompanied Blog Post

Three is also a dedicated blog post where I gather all related tutorials and learning materials in one place. Learn more: Go Web Frameworks and Toolkits

YouTube Playlists

Full Tutorials

Video Tutorials & Short Clips

Live Stream Playlists