Welcome
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 is a cross-platform library for all major operating systems, including but not limited to Linux, *BSD, OS X and Windows.
This library is free software, it is distributed under the terms and conditions of the GNU General Public License v2+
News
2026-01-16 - libfilezilla 0.54.0 released
New features:
- Added fz::processor_count()
- Added create_tcp_socketpair as alternative to socketpair() which does not exist on Windows
Bugfixes and minor changes:
- MSW: If spawning a process fails, close the redirected pipes so that subsequent read/write attempts fail immediately
2025-12-12 - libfilezilla 0.53.1 released
Bugfixes and minor changes:
- Fixed an issue with fz::async_task::join() if the underlying pool thread gets re-used too quickly
2025-12-10 - libfilezilla 0.53.0 released
New features:
- Added fz::event_with_source and fz::event_handler::remove_events taking fz::event_source, as a way to easily remove multiple types of pending events from a given source
Bugfixes and minor changes:
- Removing a child event handler was wrongly removing pending events of its ancestors