Skip to content

Releases: configcat/cpp-sdk

v4.0.4

21 Nov 10:30
fae13c4
Compare
Choose a tag to compare
  • Function-local static variables are initialized the first time the function is called in a thread-safe way to eliminate the static initialization order issues.

v4.0.3

09 Jul 09:56
e6aabaa
Compare
Choose a tag to compare
  • Fix external sha define (CONFIGCAT_EXTERNAL_SHA_ENABLED)
  • Remove hash-library sha1 calculation from configservice.cpp

v4.0.2

05 Jul 15:11
9b55029
Compare
Choose a tag to compare
  • CONFIGCAT_USE_EXTERNAL_SHA cmake compile flag to be able to use custom sha1, sha256 implementation.

v4.0.1

08 May 08:52
d4056a0
Compare
Choose a tag to compare

Fixed

  • Initial config JSON load when auto poll enabled with results from cache.

v4.0.0

04 Apr 09:17
ac7f452
Compare
Choose a tag to compare

Added

  • Support for the new Config JSON v6 format: updated the config model and implemented new features in setting evaluation logic.
  • Overhaul setting evaluation-related logging and make it consistent across SDKs.
  • Improve consistency of config JSON deserialization error reporting.
  • Performance improvements to setting evaluation (building of evaluation log is expensive, so it is skipped when info level logging is turned off).

Breaking changes

  • ConfigCatClient.get returns std::shared_ptr<ConfigCatClient> instead of raw pointer.
  • getValue functions expect const std::shared_ptr<ConfigCatUser>& as user param instead of const raw pointer.
  • The generic getValue function returns std::optional<Value> instead of std::shared_ptr<Value>. In case of any failure, std::nullopt will be returned.
  • getKeyAndValue function returns std::optional<KeyValue> instead of std::shared_ptr<KeyValue>.
  • Hooks callback changes:
    • onError reports the occurred exception with const std::exception_ptr& argument.
    • onFlagEvaluated callback's argument is changed to const EvaluationDetailsBase& from const EvaluationDetails&.
  • Renamed RolloutRule to TargetingRule.
  • Renamed RolloutPercentageItem to PercentageOption.
  • EvaluationDetails changes:
    • matchedEvaluationRule is renamed to matchedTargetingRule.
    • matchedEvaluationPercentageRule is renamed to matchedPercentageOption.
    • Introduced std::exception_ptr errorException.
    • Introduced std::shared_ptr and std::optional types instead of const ref/pointers.
  • Introduced ResponseErrorCode instead of bool operationTimedOut in Response struct.
  • Logging changes:
    • Log level names are now in capital format to follow other ConfigCat SDKs.
    • The Log function now gets const std::exception_ptr& exception as an argument. unwrap_exception_message function can be used to get the message of this exception.
  • The custom init parameter of ConfigCatUser now accepts std::string, double, std::chrono::system_clock::time_point, std::vector<std::string> typed values, not just strings. This allows the usage of various types in the user object's custom attributes.
  • Introduced datetime_to_isostring and make_datetime(int year, int month, int day, int hour, int min, int sec, int millisec) helpers in timeutils.h

v3.2.0

12 Dec 12:40
55cd33d
Compare
Choose a tag to compare
  • Introduced CONFIGCAT_USE_EXTERNAL_NETWORK_ADAPTER cmake option and CONFIGCAT_EXTERNAL_NETWORK_ADAPTER_ENABLED cpp define. If you turn it on, the cpp-sdk won't include the libcurl library. In this case, in the ConfigCat options you should add a custom http session adapter. ConfigCat will use this custom adapter for network requests.

v3.1.1

10 Nov 16:52
f4de32f
Compare
Choose a tag to compare
  • CMake install fix

v3.1.0

07 Nov 15:01
e2d3f1e
Compare
Choose a tag to compare
  • Remove cpr dependency.
  • Use just libcurl for network requests.

v3.0.0

24 Jul 08:33
7f34bd9
Compare
Choose a tag to compare

Please note that this version has several breaking changes in logging and custom cache implementation. You can find the detailed list of breaking changes below.

  • Updated logging:
    • Include event IDs in log messages to make identification of log events easier.
    • Revise log messages and make them consistent across the ConfigCat SDKs.
  • Revise caching of downloaded config data:
    • Use a standardized config cache key generation algorithm and cache payload format to allow shared caches to be used by SDKs of

v2.0.1

20 Mar 13:25
7d50fb0
Compare
Choose a tag to compare

Add a constructor to ConsoleLogger to be able to init with different log levels.