Vectored I/O for Ruby MRI

(c) 2009 Lourens Naud

Vectored I/O ?

POSIX 1003.1-2001 introduces reading or writing data into multiple buffers with a single procedure call.See http://en.wikipedia.org/wiki/Vectored_I/O for an overview.

Use cases :

* Write non-sequentially placed data in memory to disk with a single write operation.This fits very well with custom database/record formats for writing out indexes and data at once.
* Reducing syscall overheads
* Reading structured data (protocol dumps,db records) into distinct buffers

Examples :

8=FIX.4.4

“x0134=3x0152=20000426-12:05:06”, “x0110=220x01”]

Todo :

* Error handling for rewind
* An API that doesn't impose array arguments

To run the test suite:

rake

To run the benchmarks:

rake bench