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
2024-07-10 - libfilezilla 0.48.1 released
Bugfixes and minor changes:
- Allow comparing strtokenizer::iterator with each other
- MSW: fz::recursive_remove now exposes calls SHFileOperations, as the caller might need special steps to ensure modality
2024-06-26 - libfilezilla 0.48.0 released
New features:
- fz::percent_decode can now optionally treat plus as space
- Added file::get_modification_time
Bugfixes and minor changes:
- EROFS is now mapped to fsresult::noperm
- fz::aio_waiter has been removed due to thread-safety issues
- *nix: Only link with -ldl if required by dlsym
- Fixed error code if no parent can be found during mkdir
2024-04-15 - libfilezilla 0.47.0 released
New features:
- PKCS#11 support, provided GnuTLS has been compiled with PKCS#11 support enabled
Bugfixes and minor changes:
- Added parameter to fz::remove_dir that allows returning an error if the directory did not exist
- Add logging of aio reader/writers cannot be opened, fix return value of reader when trying to read nothing
- HTTP: Delay sending subsequent requests after having received a response with "Connection: close" set
- Listen sockets are now created with the SO_REUSEADDR (SO_EXCLUSIVEADDRUSE on Windows) flag set
- Added cert_type::codesign as key purpose to certificate request and creation functions in fz::tls_layer