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
2022-04-08 - libfilezilla 0.37.1 released
New features:
- Added convenience functions ot fz::json
Bugfixes and minor changes:
- MSW: Fixed spawning fz::process with blocking communication
2022-04-01 - libfilezilla 0.37.0 released
New features:
- *nix: password-less impersonation can take an optional group
- Added demo https client showcasing usage of fz::socket and fz::tls_layer
- Added some compile-time checks for fz::sprintf arguments
- MSW: Added fz::registry
- Added a way to use non-blocking read/write with fz::process
Bugfixes and minor changes:
- Added fz::logger_interface::log_u which assumes string arguments are in UTF-8 as opposed to the character set used by the current locale
- Disallow spawning additional threads while fz::thread_pool is in the process of being destroyed
- *nix: poll() is now mandatory, the select() based socket event loop has been removed
- Simplified fz::socket implementation through use of internal fz::poller
2022-02-03 - libfilezilla 0.36.0 released
New features:
- Added parameter to tls_layer::set_alpn to control which peer has priority over which ALPN is chosen.
- Added fz::hmac_sha1
- Mutex debugging framework to detect locking order inversions that may lead to deadlocks
- Add additional io_redirect mode to fz::process_spawn where the parent-side handles for stdin/out/err are always closed
Bugfixes and minor changes:
- fz::json: Handle object members with empty string as name
- Minor performance improvements to removing timers and to spawning processes