https://github.com/go-eagle/eagle
๐ฆ
A Go framework for the API or Microservice
https://github.com/go-eagle/eagle
cloud-native eagle framework gin go golang gorm grpc http microservice restful
Last synced: 6 months ago
JSON representation
๐ฆ A Go framework for the API or Microservice
- Host: GitHub
- URL: https://github.com/go-eagle/eagle
- Owner: go-eagle
- License: mit
- Created: 2018-07-05T15:18:41.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T07:05:16.000Z (about 1 year ago)
- Last Synced: 2024-10-29T15:21:28.936Z (about 1 year ago)
- Topics: cloud-native, eagle, framework, gin, go, golang, gorm, grpc, http, microservice, restful
- Language: Go
- Homepage: https://go-eagle.org
- Size: 5.51 MB
- Stars: 2,112
- Watchers: 27
- Forks: 232
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-golang-repositories - eagle
- awesome-hacking-lists - go-eagle/eagle - ๐ฆ A Go framework for the API or Microservice (Go)
- awesome-go - go-eagle - A Go framework for the API or Microservice with handy scaffolding tools. Stars:`2.4K`. (Distributed Systems / Search and Analytic Databases)
- awesome-arsenal - go-eagle - ๅพฎๆๅกๆกๆถใ (ๆญฆๅจๅบ / ๅ็ซฏ)
- awesome-go-cn - go-eagle - eagle/eagle) [![godoc][D]](https://godoc.org/github.com/go-eagle/eagle) [![ๅ ๅซไธญๆๆๆกฃ][CN]](https://github.com/go-eagle/eagle) (ๅๅธๅผ็ณป็ป / ๆฃ็ดขๅๅๆ่ตๆๅบ)
- my-awesome - go-eagle/eagle - native,eagle,framework,gin,go,golang,gorm,grpc,http,microservice,restful pushed_at:2025-10 star:2.4k fork:0.3k ๐ฆ A Go framework for the API or Microservice (Go)
- trackawesomelist - go-eagle (โญ2.2k) - A Go framework for the API or Microservice with handy scaffolding tools. (Recently Updated / [Dec 17, 2024](/content/2024/12/17/README.md))
- awesome-go-plus - go-eagle - A Go framework for the API or Microservice with handy scaffolding tools.  (Distributed Systems / Search and Analytic Databases)
- awesome-github-star - eagle - eagle.org/ | go-eagle | 1347 | (Go)
- awesome-go - go-eagle/eagle
- awesome-go-with-stars - go-eagle - A Go framework for the API or Microservice with handy scaffolding tools. (Distributed Systems / Search and Analytic Databases)
- awesome-go - go-eagle - A Go framework for the API or Microservice with handy scaffolding tools. (Distributed Systems / Search and Analytic Databases)
README
# ๐ฆ
eagle
[](https://github.com/go-eagle/eagle)
[](https://codecov.io/gh/go-eagle/eagle)
[](https://golangci.com)
[](https://godoc.org/github.com/go-eagle/eagle)
[](https://gitter.im/go-eagle/eagle?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
[](https://goreportcard.com/report/github.com/go-eagle/eagle)
[](https://github.com/carloscuesta/gitmoji)
[](/LICENSE)
A Go framework suitable for rapid business development, which can quickly build API services or Web sites.
English | [ไธญๆๆๆกฃ](https://github.com/go-eagle/eagle/blob/master/README_ZH.md)
## Features
- API framework [gin](https://github.com/gin-gonic/gin)
- RPC framework [gRPC](https://github.com/grpc/grpc-go)
- Configuration [viper](https://github.com/spf13/viper)
- Logging component [zap](https://github.com/uber-go/zap)
- Database ORM component [gorm](https://github.com/go-gorm/gorm) | [MongoDB](https://github.com/mongodb/mongo-go-driver)
- Search component [Elasticsearch](https://github.com/elastic/go-elasticsearch)
- Cache component [go-redis](https://github.com/go-redis/redis), [ristretto](https://github.com/dgraph-io/ristretto)
- Message Queue [Rabbitmq](https://github.com/rabbitmq/amqp091-go) | [redis](https://github.com/hibiken/asynq)
- Authentication [JWT](https://jwt.io/)
- Parameter Validator [validator](https://github.com/go-playground/validator)
- Scheduled tasks [cron](https://github.com/robfig/cron)
- Metrics monitoring [prometheus](https://github.com/prometheus/client_golang/prometheus), [grafana](https://github.com/grafana/grafana)
- Distributed Tracing [opentelemetry](https://github.com/open-telemetry/opentelemetry-go)
- Service registration and discovery [etcd](https://github.com/etcd-io/etcd) | [consul](https://github.com/hashicorp/consul) | [nacos](https://github.com/alibaba/nacos)
- Unit Test [GoConvey](https://github.com/smartystreets/goconvey)
- Lint [GolangCI-lint](https://golangci.com/)
- CI/CD [GitHub Actions](https://github.com/actions), [docker](https://www.docker.com/), [kubernetes](https://github.com/kubernetes/kubernetes)
## Framework Layered Architecture

## Logic Layered Architecture
Eagle utilizes a classic layered structure and employs the Wire dependency injection framework to enhance modularity and reduce coupling between components.
[](https://starchart.cc/go-eagle/eagle)
## Directory Structure
```shell
โโโ Makefile
โโโ api
โโโ cmd
โโโ config
โโโ docs
โโโ internal
โ โโโ cache
โ โโโ handler
โ โโโ middleware
โ โโโ model
โ โโโ dao
โ โโโ ecode
โ โโโ routers
โ โโโ server
โ โโโ service
โโโ logs
โโโ main.go
โโโ pkg
โโโ test
โโโ scripts
```
## Installtion CLI
```bash
GOPROXY="https://goproxy.cn,direct"
# go >= 1.16
go install github.com/go-eagle/eagle/cmd/eagle@latest
# go < 1.16
go get github.com/go-eagle/eagle/cmd/eagle
```
## Quick Start
```bash
# gen a server with http and gRPC
eagle new eagle-demo
# or
eagle new github.com/foo/eagle-demo
# install dependence
go mod tidy
# run
make run
```
## Documentation
[https://go-eagle.org/](https://go-eagle.org/)
## CHANGELOG
- [CHANGELOG](https://github.com/go-eagle/eagle/blob/master/CHANGELOG.md)
## Who is using
- [1024casts](https://1024casts.com)
- [FastIM](https://github.com/1024casts/fastim)
- [Go-microservice](https://github.com/go-microservice)
## Discussion
- Issue: https://github.com/go-eagle/eagle/issues
- Discord: https://discord.com/channels/968369660900814869
## Microservice Roadmap

## Contributing
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the repository to your own GitHub account.
- Create a new branch for your changes.
- Make your changes to the code.
- Commit your changes and push the branch to your forked repository.
- Open a pull request on our repository.
## Stargazers over time
[](https://starchart.cc/go-eagle/eagle)
## License
MIT. See the [LICENSE](LICENSE) file for details.