gofr-dev

    gofr-dev/gofr

    #297 this week

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

    api
    observability
    monitoring
    backend
    web
    framework
    go
    go-framework
    golang
    golang-framework
    Go
    Apache-2.0
    21.3K stars
    1.8K forks
    21.3K GitHub watchers
    Updated 6/26/2026
    View on GitHub

    Backblaze Generative Media Hackathon

    Build the next generation of AI media apps with Genblaze, stored on Backblaze B2. $10,000 in prizes.

    Enter the hackathon

    Loading star history...

    Use Cases & Benefits

    • GoFr is an opinionated Go framework designed to accelerate microservice development with built-in support for databases and observability.
    • Key features include simple API syntax, REST by default, gRPC support, observability (logs, traces, metrics), auth middleware, pub/sub, and health checks.
    • Strengths are Kubernetes deployment focus, out-of-the-box observability, and extensive middleware support; limitation may be its opinionated design restricting flexibility.
    • Organizations can use GoFr to rapidly build, deploy, and monitor microservices in production with integrated observability and scalable architecture.
    • Ideal use cases include building performant REST and gRPC microservices requiring observability, database integration, and Kubernetes-native deployment.

    About gofr

    GoFr

    logo

    GoFr: An Opinionated Microservice Development Framework

    godoc gofr-docs Maintainability Code 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.24 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

    Join Us in Making GoFr Better

    Share your experience: If you’ve found GoFr helpful, consider writing a review or tutorial on platforms like Medium, Dev.to, or your personal blog. Your insights could help others get started faster!

    Contribute to the project: Want to get involved? Check out our CONTRIBUTING.md guide to learn how you can contribute code, suggest improvements, or report issues.


    🔒 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 [email protected]: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

    Discover Repositories

    Search across tracked repositories by name or description