* [ANN] io_splice 3.0.0 - kinder, gentler Linux zero-copy
@ 2011-03-01 9:42 Eric Wong
0 siblings, 0 replies; only message in thread
From: Eric Wong @ 2011-03-01 9:42 UTC (permalink / raw)
To: ruby.io.splice
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://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 ruby.io.splice@librelist.com if you can think
of a good use for IO.vmsplice or IO.trysplice in Ruby.
--
Eric Wong
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2011-03-01 9:42 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-03-01 9:42 [ANN] io_splice 3.0.0 - kinder, gentler Linux zero-copy Eric Wong
Code repositories for project(s) associated with this public inbox
https://yhbt.net/ruby_io_splice.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).