simple-sendfile-0.2.0: Cross platform library for the sendfile system call

Safe HaskellSafe-Infered



Cross platform library for the sendfile system call. This library tries to call minimum system calls which are the bottleneck of web servers.



sendfile :: Socket -> FilePath -> FileRange -> IO () -> IO ()Source

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.

data FileRange Source

File range for sendfile.