Introduction to Serf

The Serf package contains a C-based HTTP client library built upon the Apache Portable Runtime (APR) library. It multiplexes connections, running the read/write communication asynchronously. Memory copies and transformations are kept to a minimum to provide high performance operation.



Development versions of BLFS may not build or run some packages properly if dependencies have been updated since the most recent stable versions of the book.

Package Information

Additional Downloads

Serf Dependencies


Apr-Util-1.6.3 and SCons-4.4.0


MIT Kerberos V5-1.20.1, for the GSSAPI

User Notes:

Installation of Serf

First, fix an issue that causes compilation issues in other packages when using OpenSSL-3:

patch -Np1 -i ../serf-1.3.9-openssl3_fixes-1.patch

Install Serf by running the following commands:

sed -i "/Append/s:RPATH=libdir,::"          SConstruct &&
sed -i "/Default/s:lib_static,::"           SConstruct &&
sed -i "/Alias/s:install_static,::"         SConstruct &&
sed -i "/  print/{s/print/print(/; s/$/)/}" SConstruct &&
sed -i "/get_contents()/s/,/.decode()&/"    SConstruct &&

scons PREFIX=/usr

This package does not come with a functional test suite.

Now, as the root user:

scons PREFIX=/usr install

Command Explanations

sed -i "...": The first command removes the runtime path from a shared library and the next two commands disable building and installing of the static library. The fourth command corrects for changes in scons-3.x. The last command allows to use Python 3.

GSSAPI=/usr: Use this switch if you have installed a GSSAPI library and you want serf to use it.


Installed Programs: None
Installed Library:
Installed Directory: /usr/include/serf-1

Short Descriptions

contains the Serf API functions