A Go framework suitable for rapid business development, which can quickly build API services or Web sites.
English | 中文文档
- API framework gin
- RPC framework gRPC
- Configuration viper
- Logging component zap
- Database ORM component gorm | MongoDB
- Search component Elasticsearch
- Cache component go-redis, ristretto
- Message Queue Rabbitmq | redis
- Authentication JWT
- Parameter Validator validator
- Scheduled tasks cron
- Metrics monitoring prometheus, grafana
- Distributed Tracing opentelemetry
- Service registration and discovery etcd | consul | nacos
- Unit Test GoConvey
- Lint GolangCI-lint
- CI/CD GitHub Actions, docker, kubernetes
Eagle utilizes a classic layered structure and employs the Wire dependency injection framework to enhance modularity and reduce coupling between components.
├── Makefile
├── api
├── cmd
├── config
├── docs
├── internal
│ ├── cache
│ ├── handler
│ ├── middleware
│ ├── model
│ ├── dao
│ ├── ecode
│ ├── routers
│ ├── server
│ └── service
├── logs
├── main.go
├── pkg
├── test
└── scripts
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
# only gen a server with http
eagle new eagle-demo
# or
eagle new github.com/foo/eagle-demo
# gen a server with http and gRPC
eagle new -b=main eagle-demo
# or
eagle new github.com/foo/eagle-demo
# install dependence
go mod tidy
# run
make run
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.
MIT. See the LICENSE file for details.