Skip to content
forked from gofr-dev/gofr

An opinionated GoLang framework for accelerated microservice development. Built in support for databases and observability.

License

Notifications You must be signed in to change notification settings

miqdigital/gofr

This branch is 14 commits behind gofr-dev/gofr:development.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

32f31a9 Β· Mar 12, 2025
Mar 12, 2025
Mar 11, 2025
Mar 4, 2025
Mar 11, 2025
Apr 17, 2024
Jan 9, 2024
Jan 27, 2025
Jul 8, 2024
Jun 27, 2024
Feb 18, 2025
Jun 26, 2024
Jan 5, 2024
Feb 17, 2025
Jun 27, 2024
Mar 11, 2025
Mar 11, 2025
Feb 25, 2025
Feb 25, 2025

Repository files navigation

GoFr

logo

GoFr: An Opinionated Microservice Development Framework

godoc gofr-docs maintainability test-coverage Go Report Card Apache 2.0 License discord

Listed in the CNCF Landscape

🎯 Goal

GoFr is designed to simplify microservice development, with key focuses on Kubernetes deployment and out-of-the-box observability. While capable of building generic applications, microservices remain at its core.


πŸ’‘ Key Features

  1. Simple API Syntax
  2. REST Standards by Default
  3. Configuration Management
  4. Observability (Logs, Traces, Metrics)
  5. Inbuilt Auth Middleware & Custom Middleware Support
  6. gRPC Support
  7. HTTP Service with Circuit Breaker Support
  8. Pub/Sub
  9. Health Check for All Datasources
  10. Database Migration
  11. Cron Jobs
  12. Support for Changing Log Level Without Restarting
  13. Swagger Rendering
  14. Abstracted File Systems
  15. Websockets

πŸš€ Getting Started

Prerequisites

  • GoFr requires Go version 1.21 or above.

Installation

To get started with GoFr, add the following import to your code and use Go’s module support to automatically fetch dependencies:

import "gofr.dev/pkg/gofr"

Alternatively, use the command:

go get -u gofr.dev/pkg/gofr

πŸƒ Running GoFr

Here's a simple example to get a GoFr application up and running:

package main

import "gofr.dev/pkg/gofr"

func main() {
	app := gofr.New()

	app.GET("/greet", func(ctx *gofr.Context) (any, error) {
		return "Hello World!", nil
	})

	app.Run() // listens and serves on localhost:8000
}

To run this code:

$ go run main.go

Visit localhost:8000/greet to see the result.


πŸ“‚ More Examples

Explore a variety of ready-to-run examples in the GoFr examples directory.


πŸ‘©β€πŸ’» Documentation


πŸ‘ Contribute

Help us make GoFr even better:

  1. Star this repo on GitHub! 🌟
  2. Write a review or tutorial on Medium, Dev.to, or your blog.
  3. Review the CONTRIBUTING.md guide to learn how to contribute to the project.

πŸ”’ Secure Cloning

To securely clone the GoFr repository, you can use HTTPS or SSH:

Cloning with HTTPS

git clone https://github.com/gofr-dev/gofr.git

Cloning with SSH

git clone git@github.com:gofr-dev/gofr.git

🎁 Get a GoFr T-Shirt & Stickers!

If your PR is merged, or if you contribute by writing articles or promoting GoFr, we invite you to fill out this form to claim your GoFr merchandise as a token of our appreciation!

Partners

JetBrains logo

About

An opinionated GoLang framework for accelerated microservice development. Built in support for databases and observability.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 99.7%
  • Other 0.3%