You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add intermediary types for the mail API as [[nodiscard]] to make it easier
to spot mistakes when chaining calls.
The merge and flat_map operators now accept an optional unsigned integer
parameter to configure the maximum number of concurrent subscriptions.
If an actor terminates, it will now consistently send error messages with code caf::sec::request_receiver_down to all outstanding requests. Any request
that arrives after an actor has closed its mailbox will receive the same error
code. This change makes it easier to handle errors in a consistent way and to
distinguish between requests that have been dropped and those that resulted in
an error while processing the request (#2070).
The URI parser in CAF now accepts URIs that use reserved characters such as *, / or ? in the query string. This change follows the recommendation in
the RFC 3986, which states that "query components are often used to carry
identifying information in the form of key=value pairs and one frequently used
value is a reference to another URI".
CAF now respects CPU limits when running in a container to determine the
thread pool size for the scheduler (#2061).
Added
New flow operators: retry, combine_latest, debounce, throttle_first
and on_error_resume_next.
New with_userinfo member function for URIs that allows setting the user-info
sub-component without going through an URI builder.
CAF now supports chunked encoding for HTTP clients (#2038).
Added a missing configuration option to the HTTP client API that allows
users to set the maximum size of the response.
Add functions to the SSL API to enable Server Name Indication (SNI, #2084).
Add throttle_last to observables: an alias for sample.
Fixed
Fix build error in caf-net when building with C++23 (#1919).
Restructure some implementation details of intrsuive_ptr (no functional
changes) to make it easier for clang-tidy to analyze the code. This fixes a
false positive reported by clang-tidy in some use cases where clang-tidy
would falsely report a use-after-free bug.
Closing a WebSocket connection now properly sends a close frame to the client
before closing the TCP connection (#1938).
Fix a build error in the unit tests when building with C++20 and setting CAF_USE_STD_FORMAT to ON (#1963).
The functions run_scheduled, run_scheduled_weak, run_delayed and run_delayed_weak now properly accept move-only callback types.
Fix the conversion from invalid actor handles to raw pointers when using actor_cast. This resolves an issue with send that could lead to undefined
behavior (#1972).
Add missing export declaration for the caf::net::prometheus symbol (#2042).
Boolean flags now accept arguments on the command line (#2048). For example, --foo=true is now equivalent to --foo and --foo=false will set the flag
to false. Short options like -f only accept the argument when passing it
without a space, e.g., -ffalse.
The buffer and interval operators now properly check the time period
parameter and produce an error if the period is zero or negative (#2030).
Passing an invalid delay parameter to to_stream or to_typed_stream
likewise produces a stream that immediately calls on_error on any client
that tries to subscribe to it.
Use localtime_s on all Windows platforms to fix a build error with
MSYS/UCRT64 (#2059).
Add missing pragma once guards to multiple headers under caf/net/ssl/.
Fix the behavior of use_certificate_file_if and use_private_key_file_if.
Both functions did not leave the caf::net::ssl::context unchanged if one of
the arguments was invalid but instead applied the invalid arguments to the
context regardless, resulting in an OpenSSL error.
Fix a bug in the HTTP parser that could cause the parser to try parsing the
payload as a new request.
Fix a startup issue when configuring Prometheus export on caf.net (#2060).
This bug caused the Prometheus server to never start up unless starting at
least one other asynchronous server or client using the caf.net API.
Fix a bug in the URI parser that could crash the application when parsing an
URI with a percent-encoded character at the end of the string (#2080).
Fix parsing of HTTP request headers that do not use the absolute path syntax
in the first line (#2074).
Optimize templates for compile-time checks used by typed behaviors. This
drastically reduces memory usage during compilation and avoids OOM errors when
spawning typed actors with a large number of message handlers (#1970).
BDD outlines now properly handle multiple WHEN blocks in a single
scenario (#1776).
Fix build issues on Clang 20 when building in C++20 mode (#2092).