Member-only story

Lightweight Rust Asynchronous Runtime

Beck Moulton
3 min readAug 23, 2024

--

In the world of Rust programming language, asynchronous programming is an important means to improve program efficiency and performance. In modern software development, with the increasing demand for concurrent programming, asynchronous runtime processing tasks such as I/O operations and network communication has become particularly important. Smol is a small and fast asynchronous runtime in Rust language. Despite its rich features, Smol maintains its minimal and clear API, which is favored by many developers. Its efficient scheduling capability enables the runtime to support native async/await and run efficiently. Next, we will delve into Smol and provide detailed usage examples to help developers better understand and apply it to practical projects.

Introduction to the Role and Characteristics of Smol

Smol is an asynchronous runtime designed specifically for Rust. It provides three types of executors for polling futures: thread-local executors for tasks created by Task :: local (), work-stealing executors for tasks created by Task :: spawn (), and blocking executors for tasks created by Task :: blocking (), blocking!, iter (), reader (), and writer (). Of these executors, only blocking executors generate threads themselves.

Reactor

Smol uses epoll as its event reactors for Linux/Android, kqueue for MacOS/iOS/BSD, and wepoll for Windows. These reactors wait for the next I/O event.

Asynchronous type

--

--

Beck Moulton
Beck Moulton

Written by Beck Moulton

Focus on the back-end field, do actual combat technology sharing Buy me a Coffee if You Appreciate My Hard Work https://www.buymeacoffee.com/BeckMoulton

No responses yet