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/
* ruby.io.splice / librelist.com
* git://git.bogomips.org/ruby_io_splice.git

Changes:

This release adds IO#pipe_size and IO#pipe_size= accessors for
resizing the kernel pipe buffer under Linux 2.6.35+.  This
functionality may be used to either reduce memory footprint or
make large copies with fewer method dispatches and system calls.

These methods are only available when run under Linux 2.6.35 or
later (but always built, so there's no need to recompile this
library after upgrading your kernel).

http://bogomips.org/ruby_io_splice/IO.html#method-i-pipe_size
http://bogomips.org/ruby_io_splice/IO.html#method-i-pipe_size%3D

-- 
Eric Wong