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.