libfilezilla Documentation


Welcome to the libfilezilla documentation.

libfilezilla is a small and modern C++ library, offering some basic functionality to build high-performing, platform-independent programs. Some of the highlights include:

  • A typesafe, multi-threaded event system that's very simple to use yet extremely efficient
  • Timers for periodic events
  • A fz::socket class for TCP communication with infrastructure to easily add layers on top
  • A TLS layer to secure communication
  • A rate-limited socket layer to control traffic flow
  • A datetime class that not only tracks timestamp but also their accuracy, which simplifies dealing with timestamps originating from different sources
  • Simple process handling for spawning child processes with redirected I/O

libfilezilla works on most modern platforms that have a C++17 compiler, including, but not limited to, Linux, *BSD, OS X and Windows.


libfilezilla is distributed under the terms and conditions of the GNU General Public License version 2 or higher.

Using libfilezilla

libfilezilla uses the GNU autotools as build system. See the INSTALL file for details.

To use libfilezilla in your project, you can use pkg-config to add the required compiler and linker flags.

If your compiler does not enable C++17 (or higher) by default, you may need to add -std=c++17 or similar to your compiler flags. Check your compiler's manual for details.

Using libfilezilla with Visual Studio

You can compile libefilezilla using the provided Visual Studio solution.

To use libfilezilla in your own project, add libfilezilla to the include and library directories and link against libfilezilla.lib If you want to link against the DLL version of libfilezilla you must also add FZ_USING_DLL to your preprocessor defines.