Skip to content

Repository files navigation

🦅 eagle

GitHub Workflow StatuscodecovGolangCIgodocGitterOpenTracing BadgeGo Report CardgitmojiLicense

A Go framework suitable for rapid business development, which can quickly build API services or Web sites.
English | 中文文档

Features

Framework Layered Architecture

eagle-framework-diagram

Logic Layered Architecture

Eagle utilizes a classic layered structure and employs the Wire dependency injection framework to enhance modularity and reduce coupling between components.

Leagle Layout Arch

Directory Structure

eagle-layout/
├── api/ # proto files and service interface definitions
│ ├── helloworld/ # example or basic service proto definitions
│ └── user/ # user-related proto definitions
├── bin/ # compiled binary files
├── cmd/ # service entry points, main.go and startup logic
│ ├── server/ # main service entry
│ ├── consumer/ # message consumer service entry
│ └── gen/ # code generation entry
├── config/ # configuration files for multiple environments
├── deploy/ # deployment files, e.g. Dockerfile, K8s configs
├── internal/ # internal implementation, not for external use
│ ├── dal/ # data access layer
│ │ ├── db/ # database related code
│ │ │ ├── model/ # data model definitions
│ │ │ ├── method/ # custom query methods
│ │ │ └── query/ # gorm/gen generated query methods
│ │ ├── cache/ # cache related code
│ │ └── rpc/ # RPC/HTTP client code
│ ├── ecode # define error code
│ ├── handler # receive user request
│ ├── repository/ # repository layer, wraps data access interfaces
│ ├── routers/ # route and middleware registration
│ ├── service/ # business logic layer
│ └── event/subscribe/ # event subscription, e.g. MQ handlers
├── logs/ # log output directory
├── scripts/ # script files
├── third_party/ # third-party dependencies or proto files
├── .github/ # GitHub workflows
├── .gitignore # Git ignore file
├── CHANGELOG.md # changelog
├── LICENSE # license
├── Makefile # build, test, code generation commands
├── README.md # project documentation
└── openapi.yaml # OpenAPI specification file 

Installtion CLI

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

# 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/

CHANGELOG

Who is using

Discussion

Microservice Roadmap

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

Stargazers over time

License

MIT. See the LICENSE file for details.

About

🦅 A Go framework for the API or Microservice

Topics

Resources

Stars

2.4k stars

Watchers

25 watching

Forks

Releases

Packages

Used by

Contributors

Languages