rio
fio
rio | fio | |
---|---|---|
7 | 30 | |
894 | 4,875 | |
- | - | |
0.0 | 9.3 | |
almost 2 years ago | 7 days ago | |
Rust | C | |
- | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
rio
-
Production grade databases in Rust
Also, not to be too bad about a reputation fallacy, but I found the author to be flippant and disrespectful when good-faith unsoundness was pointed out in his crates: https://github.com/spacejam/rio/issues/30
-
Linear Types One-Pager
In my previous post on linear types I spent quite a bit of time motivating linear types. For example the ergonomic rio io_uring library could be made sound if it could guarantee destructors are run. Or performing FFI with async C++ could be made more efficient if it could rely directly on destructors rather than having to involve an intermediate runtime for each call.
-
The Stigma Around Unsafe
It's like cargo should have a way to mark a dependency as unsafe. That way, you could have a safe mmap crate as an unsafe dependency. Or something like rio which is deliberately unsound (but is fine if you abide by its rules through the entirety of the program)
-
Anyone using io_uring?
for completeness there is also rio, but:
-
Comparing the Rust uring libraries (tokio-uring, glommio, rio, ringbahn)
rio still has known soundness issues– its Completion futures block the thread when dropped (!!!), and can allow for use-after-free bugs if leaked. See https://github.com/spacejam/rio/issues/30 for details.
-
kbio - Another Async IO Framework based on io_uring
Here are some posts about the design. https://without.boats/blog/io-uring/ https://github.com/spacejam/rio/issues/30 https://github.com/axboe/liburing/issues/109
-
Tokio, the async runtime for Rust, hits 1.0
The author of sled[1], an embedded database in Rust which has a number of promising features, has also written parts of rio[2], an underlying pure Rust io_uring library, which is intended to become the core write path for sled. rio has support for files but also has a demo for TCP (on Linux 5.5 and later) and O_DIRECT.
I tested rio recently as I had a Brilliant but Bad Idea™ involving file access and was pleasantly surprised by the API, as I have been with sled's.
I'm excited for the experimentation in the Rust ecosystem and for such low level crates to handle the complex io_uring tasks (relatively) safely!
[1]: https://github.com/spacejam/sled
[2]: https://github.com/spacejam/rio
fio
- Flexible I/O Tester
-
Dire SMB speed with on PC to NAS
Assuming two systems use flash storage, network bandwidth is identical and it is configured the same way, there should be an issue within the PC, either system or storage drive. Check the system logs for errors and warning events related to data transfer from/to NAS. Try to benchmark the PCs' disks using fio to confirm they have similar performance. https://github.com/axboe/fio
- Test Linux I/O
-
Ask HN: What are some good resources for learning about low level disk/file IO?
Not specifically addressing your question, but when you get to the point of wanting to start doing some experiments you may find that 'fio' [1] is very handy.
[1] https://github.com/axboe/fio
-
KVM virtual machines on ZFS benchmarks
The dd is not a good benchmarking tool, you should use something like fio and probably tune it to use the ioengine most similar to your use case (eg. a database server will probably use some async IO interface). In your first example (with bs=1G) probably something (the guest OS, the qemu/kvm or the host OS) have split into smaller chunks anyway.
-
SSD Sequential Write Slowdowns
All linux tests are run with fio 3.32 (github) with future commit 03900b0bf8af625bb43b10f0627b3c5947c3ff79 manually applied.
-
Want to develop a GUI wrapper for a CLI tool. Trying to figure out the tools I need.
FIO: https://github.com/axboe/fio
-
Just write the f*****g parser.
Agree, I used flex/yacc to add an arithmetic expression evaluator to fio a few years back to allow simple math with some units in fio's job files, and for stuff like that, they're fine, but I wouldn't want to use them for a real language, the error handling is kind of a nightmare.
-
Could my SD Card be going bad, or could my Switch be?
Flexible I/O Tester (fio-3.33): https://github.com/axboe/fio
- Newly cloned SSD extremely slow on Linux
What are some alternatives?
io_uring-echo-server - io_uring echo server
KDiskMark - A simple open-source disk benchmark tool for Linux distros
smol - A small and fast async runtime for Rust
iperf - iperf3: A TCP, UDP, and SCTP network bandwidth measurement tool
KuiBaDB - Another OLAP database
open-audit - Tracking and reporting for IT and related assets and configuration
cachegrand - cachegrand - a modern data ingestion, processing and serving platform built for today's hardware
xNVMe - Portable and high-performance libraries and tools for NVMe devices as well as support for traditional/legacy storage devices/interfaces.
kbio - Another Async IO Framework based on io_uring
act - Aerospike Certification Tool
async-std - Async version of the Rust standard library
glommio - Glommio is a thread-per-core crate that makes writing highly parallel asynchronous applications in a thread-per-core architecture easier for rustaceans.