비동기 작업을 실행하는 기반
응용이 표현한 비동기 작업을 실행하는 런타임 구성 요소를 제공한다. 다중 스레드 스케줄러는 작업 훔치기 방식을 사용해 실행할 작업을 배분한다. 응용의 비동기 논리와 실제 스레드에서 진행되는 실행을 연결하는 역할이다.
운영체제 사건과 네트워크
리액터는 epoll과 kqueue 및 IOCP 같은 운영체제의 이벤트 큐를 기반으로 한다. TCP와 UDP의 비동기 소켓을 제공해 준비된 입출력에 따라 응용을 진행한다. 작업 실행과 사건 통지를 함께 묶어 비동기 프로그램의 기반을 이룬다.
주변 네트워크 생태계
Tokio 프로젝트는 런타임 외에도 웹 응용과 HTTP 및 gRPC와 진단 등의 라이브러리를 관리한다. 런타임은 이들 상위 기능의 실행 기반으로 활용된다. 응용이 사용하는 프로토콜 기능과 비동기 실행을 맡는 계층을 구분할 수 있다.
관련 문서
Smol 런타임 / libuv / Boost Asio / Rust / gRPC / 비동기 프로그래밍