├── .devcontainer └── devcontainer.json ├── .github └── workflows │ └── deploy.yaml ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── README.md ├── book.toml ├── projects ├── 01_actor │ ├── Cargo.toml │ ├── README.md │ └── src │ │ ├── lib.rs │ │ └── main.rs ├── 02_hyper │ ├── Cargo.toml │ ├── README.md │ └── src │ │ └── main.rs ├── 03_shutdown │ ├── Cargo.toml │ ├── README.md │ └── src │ │ └── main.rs ├── 04_concurrency │ ├── Cargo.toml │ ├── README.md │ └── src │ │ ├── errors.rs │ │ ├── main.rs │ │ └── slow_api.rs ├── 05_byte_processing │ ├── Cargo.toml │ ├── README.md │ ├── src │ │ ├── codec.rs │ │ ├── errors.rs │ │ ├── main.rs │ │ └── slow_api.rs │ └── stream-timings.png └── 06_aimd_semaphore │ ├── Cargo.toml │ ├── README.md │ └── src │ ├── aimd.rs │ └── lib.rs └── src ├── 00_intro ├── index.md └── qrcode.gif ├── 01_actor └── index.md ├── 02_hyper ├── http-actors.png └── index.md ├── 03_shutdown ├── cancel_precautions.md ├── cancel_safety.md ├── cancel_safety.png ├── graceful.png ├── hyper.md ├── index.md └── signals.md ├── 04_concurrency └── index.md ├── 05_bytes ├── buffers.md ├── chunking.md ├── codec.md ├── index.md └── push_pull.md ├── 06_synchronisation ├── fair-rwlock.png ├── index.md ├── locking.md ├── notify.md └── tokio_mutex_disclaimer.png └── SUMMARY.md /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/.devcontainer/devcontainer.json -------------------------------------------------------------------------------- /.github/workflows/deploy.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/.github/workflows/deploy.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | book 2 | target 3 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/Cargo.toml -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/README.md -------------------------------------------------------------------------------- /book.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/book.toml -------------------------------------------------------------------------------- /projects/01_actor/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/01_actor/Cargo.toml -------------------------------------------------------------------------------- /projects/01_actor/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/01_actor/README.md -------------------------------------------------------------------------------- /projects/01_actor/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/01_actor/src/lib.rs -------------------------------------------------------------------------------- /projects/01_actor/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/01_actor/src/main.rs -------------------------------------------------------------------------------- /projects/02_hyper/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/02_hyper/Cargo.toml -------------------------------------------------------------------------------- /projects/02_hyper/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/02_hyper/README.md -------------------------------------------------------------------------------- /projects/02_hyper/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/02_hyper/src/main.rs -------------------------------------------------------------------------------- /projects/03_shutdown/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/03_shutdown/Cargo.toml -------------------------------------------------------------------------------- /projects/03_shutdown/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/03_shutdown/README.md -------------------------------------------------------------------------------- /projects/03_shutdown/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/03_shutdown/src/main.rs -------------------------------------------------------------------------------- /projects/04_concurrency/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/04_concurrency/Cargo.toml -------------------------------------------------------------------------------- /projects/04_concurrency/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/04_concurrency/README.md -------------------------------------------------------------------------------- /projects/04_concurrency/src/errors.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/04_concurrency/src/errors.rs -------------------------------------------------------------------------------- /projects/04_concurrency/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/04_concurrency/src/main.rs -------------------------------------------------------------------------------- /projects/04_concurrency/src/slow_api.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/04_concurrency/src/slow_api.rs -------------------------------------------------------------------------------- /projects/05_byte_processing/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/05_byte_processing/Cargo.toml -------------------------------------------------------------------------------- /projects/05_byte_processing/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/05_byte_processing/README.md -------------------------------------------------------------------------------- /projects/05_byte_processing/src/codec.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/05_byte_processing/src/codec.rs -------------------------------------------------------------------------------- /projects/05_byte_processing/src/errors.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/05_byte_processing/src/errors.rs -------------------------------------------------------------------------------- /projects/05_byte_processing/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/05_byte_processing/src/main.rs -------------------------------------------------------------------------------- /projects/05_byte_processing/src/slow_api.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/05_byte_processing/src/slow_api.rs -------------------------------------------------------------------------------- /projects/05_byte_processing/stream-timings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/05_byte_processing/stream-timings.png -------------------------------------------------------------------------------- /projects/06_aimd_semaphore/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/06_aimd_semaphore/Cargo.toml -------------------------------------------------------------------------------- /projects/06_aimd_semaphore/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/06_aimd_semaphore/README.md -------------------------------------------------------------------------------- /projects/06_aimd_semaphore/src/aimd.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/06_aimd_semaphore/src/aimd.rs -------------------------------------------------------------------------------- /projects/06_aimd_semaphore/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/projects/06_aimd_semaphore/src/lib.rs -------------------------------------------------------------------------------- /src/00_intro/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/src/00_intro/index.md -------------------------------------------------------------------------------- /src/00_intro/qrcode.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/src/00_intro/qrcode.gif -------------------------------------------------------------------------------- /src/01_actor/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/src/01_actor/index.md -------------------------------------------------------------------------------- /src/02_hyper/http-actors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/src/02_hyper/http-actors.png -------------------------------------------------------------------------------- /src/02_hyper/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/src/02_hyper/index.md -------------------------------------------------------------------------------- /src/03_shutdown/cancel_precautions.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/src/03_shutdown/cancel_precautions.md -------------------------------------------------------------------------------- /src/03_shutdown/cancel_safety.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/src/03_shutdown/cancel_safety.md -------------------------------------------------------------------------------- /src/03_shutdown/cancel_safety.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/src/03_shutdown/cancel_safety.png -------------------------------------------------------------------------------- /src/03_shutdown/graceful.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/src/03_shutdown/graceful.png -------------------------------------------------------------------------------- /src/03_shutdown/hyper.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/src/03_shutdown/hyper.md -------------------------------------------------------------------------------- /src/03_shutdown/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/src/03_shutdown/index.md -------------------------------------------------------------------------------- /src/03_shutdown/signals.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/src/03_shutdown/signals.md -------------------------------------------------------------------------------- /src/04_concurrency/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/src/04_concurrency/index.md -------------------------------------------------------------------------------- /src/05_bytes/buffers.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/src/05_bytes/buffers.md -------------------------------------------------------------------------------- /src/05_bytes/chunking.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/src/05_bytes/chunking.md -------------------------------------------------------------------------------- /src/05_bytes/codec.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/src/05_bytes/codec.md -------------------------------------------------------------------------------- /src/05_bytes/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/src/05_bytes/index.md -------------------------------------------------------------------------------- /src/05_bytes/push_pull.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/src/05_bytes/push_pull.md -------------------------------------------------------------------------------- /src/06_synchronisation/fair-rwlock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/src/06_synchronisation/fair-rwlock.png -------------------------------------------------------------------------------- /src/06_synchronisation/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/src/06_synchronisation/index.md -------------------------------------------------------------------------------- /src/06_synchronisation/locking.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/src/06_synchronisation/locking.md -------------------------------------------------------------------------------- /src/06_synchronisation/notify.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/src/06_synchronisation/notify.md -------------------------------------------------------------------------------- /src/06_synchronisation/tokio_mutex_disclaimer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/src/06_synchronisation/tokio_mutex_disclaimer.png -------------------------------------------------------------------------------- /src/SUMMARY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conradludgate/async-design-patterns/HEAD/src/SUMMARY.md --------------------------------------------------------------------------------