Skip to content

ButterCam/sisyphus

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

b65bf13 · Jan 12, 2024
Oct 30, 2023
Aug 23, 2021
Mar 22, 2023
Oct 26, 2023
Nov 8, 2022
Jan 12, 2024
Nov 24, 2023
Nov 24, 2023
Oct 26, 2023
Oct 26, 2023
May 20, 2020
Aug 31, 2020
Feb 26, 2021
May 17, 2020
Aug 4, 2023
Mar 9, 2023
Mar 9, 2023
May 17, 2020
Oct 26, 2023

Repository files navigation

Sisyphus

Awesome gRPC JDK version SpringBoot version Kotlin version Gradle version Maven Central

Sisyphus is the way how we provide backend services. It integrates all tools and libraries needed for designing API which follows the Google API Improvement Proposals.

See the documents website for more details, 也包含中文文档

We are rolling a huge boulder

Due to analyzing product documents completely, it is not particularly difficult to write an exquisite and easy-to-use API at the beginning for most APIs.

However, many people will break the initial design of the API in the endless updates of products.

It's hard to create a strong and extensible API in the whole project lifetime, just like rolling a huge boulder endlessly up a steep hill.

So we need an all-encompassing guide book to guide us in creating, updating, and modifying APIs.

The Google API Improvement Proposals is the all-encompassing guide book. Google created it in their rich and extensive API design experience. It laid the foundation for anyone to create an extensible API.

Good tools can help you

Choosing good tools can help you 'rolling a huge boulder' faster and easier. Sisyphus provides and integrates many tools in your 'boulder rolling' route.

Kotlin is our target language. The mature JVM community and concise grammar are the reasons.

Spring boot is our old friend to manage and organize our components.

gRPC is our target API framework. Sisyphus also provides the HTTP and gRPC Transcoding component for the environment which isn't compatible with gRPC.

Sisyphus JS is our customized protobuf and gRPC runtime for Javascript/Typescript.

Sisyphus Protobuf is our customized protobuf runtime, which designed for Kotlin.

Sisyphus gRPC Coroutine is our customized gRPC stub runtime, which designed for Kotlin coroutine.

Sisyphus gRPC RxJava is our customized gRPC stub runtime, which designed for RxJava2(Client only, design for Android).

Sisyphus DTO is the way how we create struct without protobuf.

Sisyphus Test is the way how we test our gRPC API by data-driven.

Sisyphus Middleware is the way how we connect Sisyphus and other systems.

Sisyphus Configuration Artifact is the way how we manage configurations and developing environment.

Sisyphus Kubernetes gRPC client is the way how we implement service discovery in Kubernetes.

Sisyphus Protobuf Compiler is the way how we generate Kotlin codes by .proto files.

Sisyphus Project Plugin is the way how we manage project and configuring Gradle.

Sisyphus Protobuf Plugin is the way how we generate code by .proto files in Gradle.

And More tools like CEL(Common Expression Language) , Filtering and Ordering scripts will help you to design APIs following Google AIP.