Releases: ecorm/cppwamp
Releases · ecorm/cppwamp
Release 0.11.1
Release 0.11.0
Polymorphic codecs and transports
New features:
- Adding more codecs or transports in the future will no longer result in a combinatorial explosion of explicit template instantions due to the number of transport/codec combinations.
- Session is now a move-only type that can be instantiated on the stack.
- Added
ConnectionWishandConnectionWishListto replace the oldConnectionandConnectionListclasses. TcpHostandUdsPathnow havewithFormatmethods which generate aConnectionWishthat can be passed toSession::connect.- The
authenticate,publish, 'yield', andcancelmethods ofSessionnot taking a completion handler now return anErrorOrDone. The thread-safe overloads for those now return astd::future<ErrorOrDone>. AnyCompletionExecutoris now used by session to contain the user executor.- Added
Session::ongoingCallfor progressive call results, which automatically appliesrpc.withProgessiveResults(true). Session::fallbackExecutortype relaxed toAnyCompletionExecutor.- Added
wamp::spawnandwamp::YieldContextin<cppwamp/spawn.hpp>, which are aliases to their Boost.Asio counterparts. - Added
wamp::spawnCompletionHandlerandwamp::CompletionYieldContextto support spawning coroutines viaEvent::executorand
Invocation::executor. Challenge::authenticate,Invocation::yieldandInterruption::yieldnow have thread-safe and non-thread-safe overloads.- Added
SessionErrcerror codes corresponding to new predefined error URIs that have appeared in the WAMP spec. - Added
Session::setLogHandlerwhich takes a handler of typevoid (LogEntry)and unifies all log event handling. - Added
Session::setLogLevelfor use withSession::setLogHandler.
Release v0.10.0
Asio completion token support and thread-safe Session operations.
New features:
- Callback functions,
yield_context,use_awaitable, anduse_futurenow supported as completion tokens. - C++20 coroutines now supported
- Migrated from
AsyncResultto newErrorOrclass which better emulates the proposedstd::expected. Session's asynchonous operations now return anErrorOrresult when passed ayield_contextas the completion token.- Added
Sessionoverloads with theThreadSafetag type which can be called concurrently by multiple threads. - Added
Realm::captureAbort. Session'ssetWarningHandler,setTraceHandler,setStateChangeHandler, andsetChallengeHandlernow take effect immediately even when connected.- Users can bind custom executors to their handlers and
Sessionwill use them when executing those handlers. - Boost.Asio cancellation slot support for
Session::call. - Added
Rpc::withCancelModewhich specifies the cancel mode to use when triggered by Asio cancellation slots. - Added
withArgsTuple,convertToTupleandmoveToTupletoPayloadclass. - Added the
Defermenttag type (withdefermentconstexpr variable) to more conveniently return a deferredOutcome` from an RPC handler.
Release v0.9.3
Fix non-compilation of examples.
Release v0.9.1
Add -fPIC when building vendorized static Boost libraries.
Release v0.9.0
Migrated to jsoncons for all serialization.
- Support for CBOR has been added.
- Added
toStringfree functions for dumpingVariant,Array, andObjectas a JSON-formattedstd::string. - Changed Codec, Transport, and TransportBuffer type requirements.
- Variant instances are output as true JSON via
operator(ostream&, const Variant&)ortoString. - Session warnings no longer output to std::cerr by default. Session::setWarningHandler must be explicitly called to re-enable this behavior.
See CHANGELOG for more details.
Release v0.8.0
- Refactored WAMP message processing
- Consolidated peer/session data objects to the same C++ module
- WAMP message names are now printed in traces
- Automatic enum<->variant conversions now performed while allowing custom conversion of specific enum types
- Callbacks can now be registered for session state change events
- Caller-initiated timeout support
- Progressive call results for caller
- Enriched authentication-related API to handle CRA and SCRAM (user must still compute crypto signatures using a 3rd party library)
- Added session leave overloads that don't require a Reason
- Documentation improvements
See CHANGELOG.md for more changes.
Release v0.7.0
Support newer Boost.Asio. See CHANGELOG.md for details.
Release v0.6.3
Updated for latest versions of 3rd-party libraries.
Release v0.6.2
Variant conversion enhancements. See CHANGELOG.md for details.