Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/KuiBaDB/kbio
Another Async IO Framework based on io_uring
https://github.com/KuiBaDB/kbio
async async-await asyncio await io-uring kuibadb rust rust-async
Last synced: 1 day ago
JSON representation
Another Async IO Framework based on io_uring
- Host: GitHub
- URL: https://github.com/KuiBaDB/kbio
- Owner: KuiBaDB
- License: mit
- Created: 2021-09-14T06:43:40.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2022-05-05T15:44:54.000Z (over 2 years ago)
- Last Synced: 2024-08-01T22:53:53.853Z (3 months ago)
- Topics: async, async-await, asyncio, await, io-uring, kuibadb, rust, rust-async
- Language: Rust
- Homepage: https://blog.hidva.com/2021/09/14/kbio/
- Size: 8.96 MB
- Stars: 61
- Watchers: 2
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
KBIO, add some experimental features to tokio. Currently, kbio is just used in [KuiBaDB](https://hidva.com/g?u=https://github.com/KuiBaDB/KuiBaDB), it is only a prototype and has not been tested fully. Our experience using C++20 coroutines in [Hologres](https://hidva.com/g?u=https://www.aliyun.com/product/bigdata/hologram) tells us that Worker Steal is very necessary. So we build kbio based on tokio.
- We run one IO-Uring instance per Worker. Before that, all Workers in Tokio used an Epoll instance, mainly because once a file descriptor is bound to an Epoll instance in Tokio, then the file descriptor will never switch to other Epoll instances, which will affect the effect of Worker Steal.
- Add [sysmon](https://github.com/tokio-rs/tokio/pull/4407)
# Usage
Most of them are fully compatible with tokio. See [integrate kbio into memc](https://hidva.com/g?u=https://github.com/memc-rs/memc-rs/discussions/7) for another example.
# Benchmark
We use [monoio-benchmark](https://hidva.com/g?u=https://github.com/hidva/monoio-benchmark) to do the benchmark, See [integrate kbio into memc](https://hidva.com/g?u=https://github.com/memc-rs/memc-rs/discussions/7) for another example.