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 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
2021-03-04 - libfilezilla 0.27.0 released
New features:
- Added fz::normalize_hypens to replace all hyphen-like characters in a string with the good old hyphen-minus
- Added fz::pbkdf2_hmac_sha256
- Added visibility_helper.hpp to simplify exporting symbols in shared libraries
- Added fz::compound_rate_limited_layer to which multiple rate limiters can be dynamically added/removed
- Added redirect_io parameter to fz::process::spawn
- Added --enable-socketdebug configure argument to check for invariant violation when handling socket events
- Added a optional preamble to server_handshake that is sent after initializing the session, but before the SERVER_HELLO
Bugfixes and minor changes:
- Various fixes to socket event retriggering if socket_interface::set_event_handler is used
- Fixed a nullpointer dereference in fz::tls_layer if a hostname is set prior to creating a session
2020-12-17 - libfilezilla 0.26.0 released
New features:
- Added fz::buffer::capacity()
- fz::buffer::append now also accepts single characters and std::vector
- Added fz::nonowning_buffer
- MSW: Added fz::process::handle()
- *nix: Allow passing extra file descriptors to child processes
- fz::to_wstring_from_utf8 now accepts std::string_view and fz::buffer
- fz::replace_substrings and fz::replaced_substrings now accept string views and single characters
Bugfixes and minor changes:
- Reset bucket data if it gets removed from a rate_limiter
2020-10-13 - libfilezilla 0.25.0 released
New features:
- Added fz::invoker to asynchronously call functions to run in a specific thread independent of the caller's thread
Bugfixes and minor changes:
- Added additional checks to fz::buffer to leave the buffer in a valid state in out-of-memory situations and to prevent mis-use
- Detect a particular socket buffer tuning issue under Linux where setting a receiver buffer size shrinks the window scale factor
- Reordered a few data members to reduce the amount of structure padding due to alignment