# Awesome Fiber

> Fiber is an Express inspired web framework built on top of Fasthttp, the fastest HTTP engine for Go. Designed to ease things up for fast development with zero memory allocation and performance in mind.

A curated list of awesome Fiber middlewares, boilerplates, recipes, articles and tools.

## Contents

- ⚙️ Middlewares
  - 🧬 Core
  - 🔗 External
  - 💻 Contrib
  - 🌱 Third Party
- 🚧 Boilerplates
- 📁 Recipes
- 🛠️ Tools
- 📖 Articles
- 📺 Videos
- 🤖 Benchmarks

## ⚙️ Middlewares

Where to discover Fiber middlewares.

### 🧬 Core

List of middlewares that are included within the Fiber framework. - Adaptor - Converter for net/http handlers to/from Fiber request handlers. - BasicAuth - Basic auth middleware provides an HTTP basic authentication. It calls the next handler for valid credentials and 401 Unauthorized for missing or invalid credentials. - Cache - Intercept and cache responses. - Compress - Compression middleware for Fiber, it supports `deflate`, `gzip` and `brotli` by default. - CORS - Enable cross-origin resource sharing (CORS) with various options. - CSRF - Protect from CSRF exploits. - Earlydata - Early data support for Fiber. - Encrypt Cookie - Encrypt middleware which encrypts cookie values. - EnvVar - Expose environment variables with providing an optional config. - ETag - ETag middleware that lets caches be more efficient and save bandwidth, as a web server does not need to resend a full response if the content has not changed. - Expvar - Expvar middleware that serves via its HTTP server runtime exposed variants in the JSON format. - Favicon - Ignore favicon from logs or serve from memory if a file path is provided. - FileSystem - FileSystem middleware for Fiber, special thanks and credits to Alireza Salary. - Helmet - Helps secure your apps by setting various HTTP headers. - Idempotency - Idempotency middleware for Fiber allows for fault-tolerant APIs where duplicate requests. - Keyauth - Key auth middleware provides a key based authentication. - Limiter - Rate-limiting middleware. Use to limit repeated requests to public APIs and/or endpoints such as password reset. - Logger - HTTP request/response logger. - Monitor - Monitor middleware that reports server metrics, inspired by express-status-monitor. - Pprof - Pprof middleware that serves via its HTTP server runtime profiling data in the format expected by the pprof visualization tool. - Proxy - Allows you to proxy requests to a multiple servers. - Recover - Recover middleware recovers from panics anywhere in the stack chain and handles the control to the centralized ErrorHandler. - Redirect - Redirect middleware for Fiber. - RequestID - Adds a requestid to every request. - Rewrite - Rewrite middleware rewrites the URL path based on provided rules. It can be helpful for backward compatibility or just creating cleaner and more descriptive links. - Session - Session middleware. NOTE: This middleware uses our Storage package. - Skip - Skip middleware that skips a wrapped handler is a predicate is true. - Timeout - Adds a max time for a request and forwards to ErrorHandler if it is exceeded.

### 🔗 External

List of externally hosted middleware modules and maintained by the Fiber team. - storage - Premade storage drivers that implement the Storage interface, designed to be used with various Fiber middlewares. - template - This package contains 8 template engines that can be used with Fiber v1.10.x Go version 1.13 or higher is required.

### ‍💻 Contrib

List of third party middlewares and maintained by the Fiber team and community. - casbin - Casbin middleware for Fiber. - fiberi18n - Middleware for i18n support in Fiber. - fibernewrelic - NewRelic middleware for Fiber. The middleware handles NewRelic insturmentation. - fibersentry - Sentry support for Fiber. - fiberzap - Zap logging support for Fiber. - jwt - JWT returns a JSON Web Token (JWT) auth middleware. - opafiber - Open Policy Agent middleware for Fiber. The middleware handles running Rego policies. - otelfiber - OpenTelemetry support for Fiber. - paseto - PASETO returns a Web Token (PASETO) auth middleware. - swagger - Swagger middleware for Fiber. The middleware handles Swagger UI. - websocket - Based on Fasthttp WebSocket for Fiber with Locals support!

### 🌱 Third Party

List of middlewares that are created by the Fiber community. - shareed2k/fiber_tracing - Middleware trace requests on Fiber framework with OpenTracing API. - shareed2k/fiber_limiter - Limiter using redis as store for rate limit with two algorithms for choosing sliding window, gcra leaky bucket. - ansrivas/fiberprometheus - Prometheus middleware for gofiber. - sacsand/gofiber-firebaseauth - Fiber Firebase Auth Middleware. - aschenmaker/fiber-health-check - Health-check middleware support health-check for Fiber️ framework. - elastic/apmfiber - APM Agent for Go Fiber. - eozer/fiber_ldapauth - LDAP Authentication Middleware for Fiber. - darkweak/souin - HTTP cache, RFC compliant, alternative to Varnish available as a middleware. - witer33/fiberpow - Anti DDoS/Bot Middleware with a customizable Proof Of Work challenge. - beyer-stefan/gofiber-minifier - Minifying middleware for HTML5, CSS3, and JavaScript. - joffref/opa-middleware - Provides an OPA middleware integration for fiber. - vladfr/fiber-servertiming - A middleware to add Server-Timing headers based on the W3C Server-Timing Spec. - airbrake/gobrake - An Airbrake middleware that reports performance data (route stats). - samber/slog-fiber - A logger middleware that uses Go slog library. - mikhail-bigun/fiberlogrus - A logger middleware that uses logrus and its structured logging features. - Idan-Fishman/fiber-bind - Request schema validator middleware that validates sources such as the request body, query string parameters, route parameters and even form files. - rodrigoodhin/fiper - FiPer is a library that provides Fiber with Role Based Access Control (RBAC) using JWT and with database persistence using two ORM libraries are supported: Gorm and Bun. - zeiss/fiber-goth - Simple middleware to integrate authentication to your Fiber applications. - zeiss/fiber-authz - A middleware to secure routes in Fiber with a defined RBAC model. - zeiss/fiber-htmx - A middleware for using HTMX in Fiber. - jsorb84/ssefiber - A basic SSE Implementation for Fiber.

## 🚧 Boilerplates

Premade boilerplates for Fiber. - gofiber/boilerplate - Official fiber boilerplate. - fiber-boilerplate - A boilerplate for the Fiber web framework. - sujit-baniya/fiber-boilerplate - Boilerplate on the top of fiber web framework with many middlewares and features. - sujit-baniya/goravel - Laravel similar boilerplate go Go with support for Gofiber or Gin. - create-go-app/fiber-go-template - Fiber backend template for Create Go App CLI. - efectn/fiber-boilerplate - Simple and scalable boilerplate to build powerful and organized REST projects with Fiber. - embedmode/fiberseed - Fiber boilerplate api with many middlewares. - GalvinGao/gofiber-template - A production-ready, container-first opinionated gofiber project template. Config by envvars, DI by go.uber.org/fx, Database by uptrace/bun, with out-of-the-box MVC folder structure and CI/CD support. - mikhail-bigun/go-app-template - Clean architecture Go application boilerplate with enriched Fiber implementation. - amrebada/go-modules - Nest JS like structure for Go Fiber. - ingeniousambivert/fiber-bootstrapped - A toolkit for Go projects embracing a service-centric architecture, inspired by the principles of FeathersJS. - sebajax/go-vertical-slice-architecture - Vertical Slice Architecture code archetype using Fiber and Uber dig. A maintainable, and scalable code organization.

## 📁 Recipes

Recipes for Fiber. - gofiber/recipes - Official Fiber cookbook. - kiyonlin/fiblar-demo - Fiber v1 + angular demo. - koddr/tutorial-go-fiber-rest-api - Tutorial for building a restful api with fiber. - firebase007/go-rest-api-with-fiber - Demo project with fiber, logging, basicAuth and postgresql. - chawk/go_fiber_quickstart - Fiber quick start example project. - EricLau1/go-fiber-auth-api - Golang Authentication API with Fiber MongoDB and JWT. - alpody/golang-fiber-realworld-example-app - Example real world backend API built with Fiber, Gorm, Swagger.

## 🛠️ Tools

Several tools to make Fiber usage easier. - go-dawn/dawn - Dawn is an opinionated web framework that provides rapid development capabilities which on top of Fiber. - tompston/gomakeme - Generate boilerplate + endpoints for Fiber or Gin REST APIs. - ryanbekhen/feserve - Feserve is a lightweight application or docker image to serve frontend and load balancer applications. - deepmap/oapi-codegen - Generate Go client and server boilerplate from OpenAPI 3 specifications.

## 📖 Articles

Articles about Fiber written by the community.

- Working with middlewares and boilerplates
- Testing the application
- Delving into built-in functions
- Go Fiber by Examples: How can the Fiber Web Framework be useful?
- Build a RESTful API on Go: Fiber, PostgreSQL, JWT and Swagger docs in isolated Docker containers
- Getting started with Fiber
- Building an Express-style API in Go with Fiber
- Fiber v1.9.6 How to improve performance by 817% and stay fast, flexible and friendly?
- Create a travel list app with Go, Fiber, Angular, MongoDB and Google Cloud Secret Manager
- Building a Basic REST API in Go using Fiber
- Creating Fast APIs In Go Using Fiber
- Is switching from Express to Fiber worth it?
- Fiber v1.8. What’s new, updated and re-thinked?
- Fiber released v1.7! What's new and is it still fast, flexible and friendly?
- Welcome to Fiber — an Express.js styled web framework written in Go with ❤️
- Blazing Fast Unit Tests - Fiber/fasthttp/http Internals
- Building Microservices in Go : Part 1 - Project Setup, Dockerization
- Building Microservices in Go : Part 2 - Live Reload
- Building Microservices in Go : Part 3 - Database, Models, Migrations
- Build a REST API from scratch with Go, Docker & Postgres
- Build a fullstack app with Go Fiber, Docker, and Postgres
- Create a CRUD app with Go Fiber, docker, and Postgres

## 📺 Videos

Video tutorials created by the community about Fiber.

- Is Fiber the best Go web framework? Better than Gin?

## 🤖 Benchmarks

Several benchmarks to compare Fiber with other frameworks. - TechEmpower - Project provides performance measures across a wide field of web application frameworks. - web-frameworks-benchmark - Project aims to measure the differences between the various programming language frameworks. - go-web-framework-benchmark - This benchmark suite aims to compare the performance of Go web frameworks.

### 👍 Contributing

Contribution guidelines can be found on CONTRIBUTING.md