3fd Versions Save

C++ Framework For Fast Development: OOP wrappers and helpers for OpenCL, SQLite, Microsoft RPC API (DCE), Windows Web Services API (SOAP), Extensible Storage Engine (ESENT) and Service Broker (SQL Server). Also: garbage collection, exception handling, logging, stack tracing and command line parser. Ports available from POSIX to Windows 10 Mobile.

v2.7.2

3 years ago
  • End of support for x86_32
  • Removed unnecessary files in repo
  • Small fixes in preprocessor configuration
  • Several source files received better names
  • Support for Ubuntu v20
  • Fixed bug in command line parser by eliminating dependency to std::regex
  • Deployment for Linux: build produces drop-in 'build' directory
  • Deployment for Windows: VS solution build produces drop-in 'install' directory
  • Extended test coverage

v2.6.3

3 years ago
  • New module available for XML parsing with a query oriented interface and support for namespaces, built on top of rapidxml, replacing the previous dependency on POCO XML/Utils
  • Upgraded development platform compliance in linux to Ubuntu 18.04 x64 with GCC v7.3
  • Added VS2017 solution for development in linux (remote compilation)
  • Improved bootstrap, config and build scripts for linux
  • For better experience in VS, projects for linux build are now using VC++ build system instead of invoking CMake

v2.7.1

3 years ago
  • Dependencies outside the project were eliminated: no Boost, POCO or VLD
  • Source code for remaining dependencies are included in the solution to ease build
  • Integration with VCPKG has been abandoned (git clone brings everything now)
  • 3FD framework has been broken into several smaller projects
  • Utilities for UWP platform now rely on C++/WinRT (instead of C++/CX)
  • OpenCL module now uses headers from Khronos v1.2
  • Broker module now uses nanodbc
  • Broker module interface was redesigned for robustness (tests also)
  • Fixed bug in namespace resolver for XML queries
  • Cleaned up projects configuration (removed XP-toolset build option)
  • Source code compilation is now compliant with C++17 standard of VS2017 v15.9
  • Default compiler for Linux platform upgraded to GCC v8.4
  • Simplified build scripts for Linux

v2.6.2

5 years ago
  • Ported solution to Visual C++ 2017 (Windows 10 build 10.0.15063) and Clang 3.9
  • Moved SQLite, RapidXML, POCO, Boost and googletest dependencies to outside the project
  • In Windows platform, dependencies were moved into VCPKG package management (no support for WinXP, yet)
  • In Linux, dependencies are now dealt by bootstrap script
  • Improved bootstrap and build procedures for Linux
  • Upgraded googletest to v1.8 to be C++17 compliant for msvc compiler
  • Upgraded also POCO, Boost and SQLite libraries in Linux
  • Fixed bug integration tests for WWS module
  • Fixed bug in RPC module that would lead to incorrectly formatted numbers when displaying extended error information
  • Improved behavior of class for system event for better consistency
  • Introduced an STL compliant and optimized allocator for better cache efficiency in memory intensive tasks, relying in the newly available memory pools from STL <memory_resources> header
  • Improved implementation of algorithm for binary search of ranges
  • Improved unit tests for algorithms
  • Refactored resource concurrency to use exponential back-off in all eligible cases, including the SQLite wrappers

v2.5.3

6 years ago
  • Changed build script for Windows to always produce both debug and release output, so as to make it standard tool to generate a framework installation
  • Added installation of MSSQL ODBC driver to setup shell script for Ubuntu Linux, plus small improvements
  • Stripped the framework solution out of sample applications, which were moved to their own repositories
  • Fixed bug in initialization that would lead to stack corruption whenever the configuration file loading/parsing fails
  • Added capability of loading error info from an HMODULE in WWAPI::AppendDWordErrorMessage
  • Improved error handler for task chains in UWP apps
  • Corrected UWP XAML report helper: no longer displaying stack trace of exception
  • Replaced POCO XML parser in configuration module by RAPIDXML to speed-up initialization, mainly in WinRT apps
  • SQLite source updated to v3.21.0

v2.5.2

6 years ago
  • Ported IO serialization utilities to linux
  • Changed format of XML configuration file
  • Fixed memory leaks in RPC module and its tests
  • Fixed crash that would happen upon transportation of exception from another thread
  • Fixed crash that would happen upon elaboration of report with extended RPC error information
  • Fixed/improved error output upon WWS errors
  • Fixed bug in WWS module that would make channel properties (additional to the ones defined in wsutil.exe generated source) be ignored
  • Reduced memory footprint of WWS hosts
  • Made compiler optimizations for enhanced instruction sets (SSE2/AVX2) dependent on environment variables MSVC_X86_RELEASE_EINSTSET and MSVC_X64_RELEASE_EINSTSET, so as to keep default built binaries compatible with older hardware
  • More fault tolerance/graceful degradation in Broker, WWS and RPC modules: attempt to recover from loss of connection or bad reply, using retries when applicable
  • Added capability of non-hardcoded settings in XML configuration of applications
  • Changes in most important parameters for tests no longer require recompilation from source because they are now XML configured
  • Stardardized configuration of VS projects
  • SQLite source updated to v3.20
  • Dependency libraries are updated. On Windows: Boost v1.65.1 and POCO C++ 1.7.9. On Linux: Boost v1.65.1 and POCO C++ v1.7.8p3.
  • Improvements on build & setup process for POSIX
  • Build/install for Windows from source code of solution and dependencies is now fully automated by Powershell script
  • Port to Windows 7: Win32 projects now run in Win7 (and theorically XP too) when compiled by vs140_xp toolset

v2.4.3

6 years ago
  • Fixed bug in configuration loading for WinRT
  • Fixed bug with chosen image container in ImageTranscoder UWP app
  • Fixed bug in ImageTranscoder source caused by file name collision that would happen whenever transcoding JXR to JXR
  • Improved handling of framework initialization in linked components
  • Improved exception report for HRESULT and POCO C++ errors
  • Ported ImageTranscoder to UWP app platform
  • Removed old projects for Win8.1, only UWP now
  • Added helpers to report error details in UWP app UI
  • Added printf-like based serialization to text
  • Restructured solution directories for WinRT projects
  • SQLite source updated to v3.19.2

v2.4.2

7 years ago
  • SQLite source updated to v3.18.0
  • Added new sample application ImageTranscoder
  • Added binary search generic algorithms to utilities
  • Improved implementation of integration tests to ease the setup of development environment
  • Tweaked configuration for compilation of tests in release builds, so as to optimize further for modern CPU's
  • Compilable in Clang v3.8 on Linux
  • Minor fixes and improvements

v2.4.1

7 years ago
  • New broker module to ease the use of MSSQL Service Broker (working also in POSIX)
  • Improved usage of ISAM module interface with more meaningful parameters in definition of tables and indexes

v2.3.3

7 years ago
  • Upgraded embedded SQLite implementation to v3.17.0