blaz.is
DRANK

Published: Dec. 7, 2023, 5 p.m.I'm extremely proud to announce the first release of mfio, mfio-rt, and mfio-netfs! This is the most flexible Rust I/O framework, period. Let's get into it, but before that, warning: this is going to be a dense post, so if you want a higher level overview, check out the release video :)mfio is an ambitious project that builds on the ideas of No compromises I/O. In the YouTube video, I say mfio is a framework defined by 2 traits, so, let's have a look at them:#[cglue_trait] pub trait PacketIo<Perms: PacketPerms, Param>: Sized { fn send_io(&self, param: Param, view: BoundPacketView<Perms>); } pub trait IoBackend<Handle: Pollable = DefaultHandle> { type Backend: Future<Output = ()> + Send + ?Sized; fn polling_handle(&self) -> Option<PollingHandle>; fn get_backend(&self) -> BackendHandle<Self::Backend>; } PacketIo allows the client to submit requests to I/O backends, while IoBackend allows the client to cooperatively drive the backend. Of cou…

blaz.is
Related Topics:
2 comments
  • io_uringなどのcompletionベースのIOモデルを持つAPIを抽象化したRustのIOランタイムを作ったと。スループットではstdやTokioに勝る。

    Announcing mfio - Completion I/O for Everyone