Cross platform library for the sendfile system call. This library tries to call minimum system calls which are the bottleneck of web servers.
Simple binding for sendfile() of Linux. Used system calls:
- EntireFile -- open(), stat(), sendfile(), and close() - PartOfFile -- open(), sendfile(), and close()
If the size of the file is unknown when sending the entire file, specifying PartOfFile is much faster.
The fourth action argument is called when a file is sent as chunks. Chucking is inevitable if the socket is non-blocking (this is the default) and the file is large. The action is called after a chunk is sent and bofore waiting the socket to be ready for writing.