Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/unionj-cloud/go-doudou

go-doudou(doudou pronounce /dəudəu/)is OpenAPI 3.0 (for REST) spec and Protobuf v3 (for grpc) based lightweight microservice framework. It supports monolith service application as well.
https://github.com/unionj-cloud/go-doudou

apollo cloud-native etcd framework go golang grpc grpc-go microservice nacos openapi orm rate-limiting rest restful-api service-mesh swagger3

Last synced: about 13 hours ago
JSON representation

go-doudou(doudou pronounce /dəudəu/)is OpenAPI 3.0 (for REST) spec and Protobuf v3 (for grpc) based lightweight microservice framework. It supports monolith service application as well.

Awesome Lists containing this project

README

        



Vite logo





Mentioned in Awesome Go
GoDoc
Go
codecov
Go Report Card
Release
License: MIT
License: MIT



# go-doudou

> Lightweight Golang Microservice Framework

- 💡 Starts from golang interface, no need to learn new IDL(interface definition language).
- 🔩 Powerful code generator cli built-in. After defining your interface methods, your only job is implementing your awesome idea.
- ⚡ Born from the cloud-native era. Built-in CLI can speed up your product iteration.
- 🔑 Built-in service governance support including remote configuration management, client-side load balancer, rate limiter, circuit breaker, bulkhead, timeout, retry and more.
- 📦️ Supporting both monolith and microservice architectures gives you flexibility to design your system.

Go-doudou(doudou pronounce /dəudəu/)is OpenAPI 3.0 (for REST) spec and Protobuf v3 (for grpc) based lightweight microservice framework. It supports monolith service application as well.

Read the Docs [https://go-doudou.github.io/guide](https://go-doudou.github.io/guide) to Learn More.

## Benchmark

![benchmark](./benchmark.png)

Machine: `MacBook Pro (16-inch, 2019)`
CPU: `2.3 GHz 8 cores Intel Core i9`
Memory: `16 GB 2667 MHz DDR4`
ProcessingTime: `0ms, 10ms, 100ms, 500ms`
Concurrency: `1000`
Duration: `30s`
go-doudou Version: `v1.3.7`

[Checkout the test code](https://github.com/wubin1989/go-web-framework-benchmark)

## Credits

Give credits to following repositories and all their contributors:
- [go-redis/redis_rate](github.com/go-redis/redis_rate): go-doudou is relying on it to implement redis based rate limit feature
- [apolloconfig/agollo](https://github.com/apolloconfig/agollo): go-doudou is relying on it to implement remote configuration management support for [Apollo](https://github.com/apolloconfig/apollo)
- [nacos-group/nacos-sdk-go](https://github.com/nacos-group/nacos-sdk-go): go-doudou is relying on it to implement service discovery and remote configuration management support for [Nacos](https://github.com/alibaba/nacos)

## Community

Welcome to contribute to go-doudou by forking it and submitting pr or issues. If you like go-doudou, please give it a
star!

Welcome to contact me from

- Facebook: [https://www.facebook.com/bin.wu.94617999/](https://www.facebook.com/bin.wu.94617999/)
- Twitter: [https://twitter.com/BINWU49205513](https://twitter.com/BINWU49205513)
- Email: [email protected]
- WeChat:
wechat-group
- WeChat Group:
wechat-group
- QQ group:
qq-group

## 🔋 JetBrains Open Source License

Go-doudou has been being developed with GoLand under the **free JetBrains Open Source license(s)** granted by JetBrains s.r.o., hence I would like to express my gratitude here.

JetBrains Logo (Main) logo.

## License

MIT