Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gofr-dev/gofr
An opinionated GoLang framework for accelerated microservice development. Built in support for databases and observability.
https://github.com/gofr-dev/gofr
go golang golang-framework grpc grpc-go grpc-golang hacktoberfest http-server microservice microservice-framework rest-api server web-framework
Last synced: 3 days ago
JSON representation
An opinionated GoLang framework for accelerated microservice development. Built in support for databases and observability.
- Host: GitHub
- URL: https://github.com/gofr-dev/gofr
- Owner: gofr-dev
- License: apache-2.0
- Created: 2023-10-24T10:14:48.000Z (about 1 year ago)
- Default Branch: development
- Last Pushed: 2024-11-24T08:21:57.000Z (19 days ago)
- Last Synced: 2024-11-24T09:12:53.657Z (19 days ago)
- Topics: go, golang, golang-framework, grpc, grpc-go, grpc-golang, hacktoberfest, http-server, microservice, microservice-framework, rest-api, server, web-framework
- Language: Go
- Homepage: https://gofr.dev
- Size: 7.29 MB
- Stars: 3,603
- Watchers: 21
- Forks: 240
- Open Issues: 50
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-go - GoFr - Gofr is an opinionated microservice development framework. Stars:`3.6K`. (Web Frameworks / Utility/Miscellaneous)
README
GoFr
GoFr: An Opinionated Microservice Development Framework
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](https://gofr.dev/docs/quick-start/observability)** (Logs, Traces, Metrics)
5. **Inbuilt [Auth Middleware](https://gofr.dev/docs/advanced-guide/http-authentication)** & Custom Middleware Support
6. **[gRPC Support](https://gofr.dev/docs/advanced-guide/grpc)**
7. **[HTTP Service](https://gofr.dev/docs/advanced-guide/http-communication)** with Circuit Breaker Support
8. **[Pub/Sub](https://gofr.dev/docs/advanced-guide/using-publisher-subscriber)**
9. **[Health Check](https://gofr.dev/docs/advanced-guide/monitoring-service-health)** for All Datasources
10. **[Database Migration](https://gofr.dev/docs/advanced-guide/handling-data-migrations)**
11. **[Cron Jobs](https://gofr.dev/docs/advanced-guide/using-cron)**
12. **Support for [Changing Log Level](https://gofr.dev/docs/advanced-guide/remote-log-level-change) Without Restarting**
13. **[Swagger Rendering](https://gofr.dev/docs/advanced-guide/swagger-documentation)**
14. **[Abstracted File Systems](https://gofr.dev/docs/advanced-guide/handling-file)**
15. **[Websockets](https://gofr.dev/docs/advanced-guide/handling-file)**---
## 🚀 **Getting Started**
### **Prerequisites**
- GoFr requires **[Go](https://go.dev/)** version **[1.21](https://go.dev/doc/devel/release#go1.21.0)** 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:```go
import "gofr.dev/pkg/gofr"
```Alternatively, use the command:
```bash
go get -u gofr.dev/pkg/gofr
```---
## 🏃 **Running GoFr**
Here's a simple example to get a GoFr application up and running:
```go
package mainimport "gofr.dev/pkg/gofr"
func main() {
app := gofr.New()app.GET("/greet", func(ctx *gofr.Context) (interface{}, error) {
return "Hello World!", nil
})app.Run() // listens and serves on localhost:8000
}
```To run this code:
```bash
$ go run main.go
```Visit [`localhost:8000/greet`](http://localhost:8000/greet) to see the result.
---
## 📂 **More Examples**
Explore a variety of ready-to-run examples in the [GoFr examples directory](https://github.com/gofr-dev/gofr/tree/development/examples).
---
## 👩💻 **Documentation**
- **[GoDoc](https://pkg.go.dev/gofr.dev)**: Official API documentation.
- **[GoFr Documentation](https://gofr.dev/docs)**: Comprehensive guides and resources.---
## 👍 **Contribute**
Help us make GoFr even better:
1. **Star** this repo on GitHub! 🌟
2. Write a review or tutorial on **[Medium](https://medium.com/)**, **[Dev.to](https://dev.to/)**, or your blog.
3. Review the **[CONTRIBUTING.md](CONTRIBUTING.md)** guide to learn how to contribute to the project.---
### 🎁 **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](https://forms.gle/R1Yz7ZzY3U5WWTgy5) to claim your GoFr merchandise as a token of our appreciation!
### Partners