Enable build support by adding .onedev-buildspec.yml
| cmake | Loading last commit info... | |
| commute | ||
| examples | ||
| sims | ||
| stress_tests | ||
| tests | ||
| third_party | ||
| .clang-format | ||
| .clang-tidy | ||
| .gitignore | ||
| CMakeLists.txt | ||
| README.md |
README.md
Commute
Fault-tolerant RPC framework with pluggable runtime
Examples
- HelloWorld
- Tracing
- Proxy
- Retries
- Timeout / deadline propagation
- Circuit-Breaker
- Remote cancellation
- Semaphore
Simulations
Dependencies
Third-party
- Protocol Buffers – serialization
Inspiration
- Finagle
- Finagle 101 by Vladimir Kostyukov
- Your Server as a Function, RPC Redux by Marius Eriksen
- Cap'n Proto PRC Protocol by Kenton Varda
Availability
- Exponential Backoff And Jitter
- Timeouts, retries, and backoff with jitter
- Fixing retries with token buckets and circuit breakers
- What's the Cost of a Millisecond?
- Queueing Theory in Practice
- The Tail at Scale
- Addressing Cascading Failures
Requirements
- Compiler:
clang++(≥ 13) - Operating System: Linux, MacOS
- Architecture: x86-64 / Arm-64
Build
# Clone repo
git clone https://gitlab.com/whirl-framework/commute.git
cd commute
# Build
mkdir build && cd build
# Bootstrap / Step 1
cmake ..
# Bootstrap / Step 2: compile protobuf compiler
make protoc
# Bootstrap / Step 3
cmake -DCOMMUTE_TESTS=ON -DCOMMUTE_EXAMPLES=ON ..
# Build example
make commute_example_hello
# Run example
./examples/hello/commute_example_hello