Introducing `trale`: Tiny Rust Async Linux Executor (A full async executor in approx 250 lines of rust)
Hello everyone,
I've recently been working on a project to understand how real async executors are implemented in Rust. Trale is the outcome of that journey, where I set out to write a fully-working async executor but keep the implementation as small and simple as possible. I hope that these goals will enable this project to be a useful learning aid for anyone curious as to how futures are really executed.
Current status: Future's execution is multiplexed on a single thread and, using linux's epoll interface, rescheduled by a reactor when progress can be made. Timer and UDP futures have been implemented but I plan to add more.
Given that the core (Task, Executor and Reactor) is now proven to be working, I feel that it's time to share my work with the community, hopefully allowing people to gain a deeper understanding of Rust's futures.