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