[ANN] io_splice 3.0.0 - kinder, gentler Linux zero-copy

E

Eric Wong

The splice family of Linux system calls can transfer data between file
descriptors without the need to copy data into userspace. Instead of a
userspace buffer, they rely on an ordinary Unix pipe as a kernel-level
buffer.

* http://bogomips.org/ruby_io_splice/
* (e-mail address removed)
* git://bogomips.org/ruby_io_splice.git

Changes:

This release adds the IO.trysplice and IO.trytee interfaces
to avoid expensive EAGAIN exceptions for non-blocking I/O.

There is no IO.tryvmsplice method as we still haven't figured
out a good use for IO.vmsplice in Ruby, and non-blocking I/O
with iovecs is just painful! If you want more zero-copy fun
without needing mmap(2), check out the "sendfile" RubyGem and
IO.copy_stream (1.9). As of Linux 2.6.33+, sendfile(2) can copy
mmap-able files to +any+ descriptor, not just sockets.

Please email us at (e-mail address removed) if you can think
of a good use for IO.vmsplice or IO.trysplice in Ruby.
 
A

Avdi Grimm

The splice family of Linux system calls can transfer data between file
descriptors without the need to copy data into userspace. =A0Instead of a
userspace buffer, they rely on an ordinary Unix pipe as a kernel-level
buffer.

This sounds really cool. Bookmarked!

--=20
Avdi Grimm
http://avdi.org
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,023
Latest member
websitedesig25

Latest Threads

Top