Jupiter Project Layout
- Support HTTP/gRPC with Protobuf
- Single Repo and Multiple Applications
- High Cohesion and Low Coupling
- Dependency Injection
- Auto Code Generation
- Unit Test with Mock
- E2E Test with Docker
- Define errors in Proto
- Define validate rules in Proto
- Auto generate Swagger API Documentation
- Builtin Swagger UI
- Deploy Juno
kubectl apply -f https://github.com/douyu/juno/releases/download/latest/install.yml
- Wait for ready
kubectl wait --for=condition=available --timeout=600s deployment/juno-admin -n default
- Deploy Jupiter-Layout
kubectl apply -f https://github.com/douyu/jupiter-layout/releases/download/latest/install.yml
- Wait for ready
kubectl wait --for=condition=available --timeout=600s deployment/exampleserver -n default
- Expose Jupiter-Layout Deployment
kubectl port-forward deployments/exampleserver 9527:9527 9528:9528 9529:9529 -n default
- HTTP
curl "https://localhost:9527/v1/helloworld.Greeter/SayHello/bob"
{"error":0,"msg":"","data":{"name":"hello bob","ageNumber":0,"sex":0,"metadata":null}}
- GRPC
buf curl --schema api --protocol grpc --http2-prior-knowledge --data '{"name":"bob"}' https://localhost:9528/helloworld.v1.GreeterService/SayHello
{"data":{"name":"hello bob"}}
For bug report, questions and discussions please submit an issue.
Contributions are always welcomed!
You can start with the issues labeled with good first issue.