Skip to content

Release 4.1.0

Compare
Choose a tag to compare
@tsaubergine tsaubergine released this 27 Jul 04:18
· 24 commits to 4.0 since this release

Features

Thread safety

DCCL now support thread safe behavior by default using std::mutex. If you wish to default to the old behavior set -Denable_thread_safety=OFF to CMake during build.

  • Individual dccl::Codec instantiations can be be used in individual threads (this was not previously the case).
  • If you are sharing a single dccl::Codec between threads, full locking is still required.
  • DynamicProtobufManager is now thread safe. This requires an API change for several advanced usage methods: msg_factory() -> msg_factory_call(...), user_descriptor_pool() -> user_descriptor_pool_call(...), simple_database() -> simple_database_call(...).
  • The singleton FieldCodecManager has been replaced by FieldCodecManagerLocal which is owned by each Codec and can be accessed with Codec::manager().

Boost no longer a requirement

Boost is no longer required when Units support is not enabled and C++17 is used. If Units is used, boost units, spirit, lamda, and bimap (all header-only) libraries are required. If C++14 is used, boost any is required.

Protoc plugin load file

protoc-gen-dccl can now generate a file that loads all the generated protobufs: See #106.

Protobuf update

Protobuf 3.0.0 or newer is now required.

Consistent code formatting

The entire project is consistently formatted now using clang-format.

OS X support

CircleCI support for Mac OS X builds using Homebrew (Protobuf 3.21).

Bug fixes

Thanks

Thanks to @philboske for significant contributions to this release and @ltoohey for bug reporting.