Skip to content

Releases: ecorm/cppwamp

Release 0.11.1

01 Sep 05:02
Compare
Choose a tag to compare

Updated UML diagrams

Release 0.11.0

01 Sep 01:41
Compare
Choose a tag to compare

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 ConnectionWish and ConnectionWishList to replace the old Connection and ConnectionList classes.
  • TcpHost and UdsPath now have withFormat methods which generate a ConnectionWish that can be passed to Session::connect.
  • The authenticate, publish, 'yield', and cancel methods of Session not taking a completion handler now return an ErrorOrDone. The thread-safe overloads for those now return a std::future<ErrorOrDone>.
  • AnyCompletionExecutor is now used by session to contain the user executor.
  • Added Session::ongoingCall for progressive call results, which automatically applies rpc.withProgessiveResults(true).
  • Session::fallbackExecutor type relaxed to AnyCompletionExecutor.
  • Added wamp::spawn and wamp::YieldContext in <cppwamp/spawn.hpp>, which are aliases to their Boost.Asio counterparts.
  • Added wamp::spawnCompletionHandler and wamp::CompletionYieldContext to support spawning coroutines via Event::executor and
    Invocation::executor.
  • Challenge::authenticate, Invocation::yield and Interruption::yield now have thread-safe and non-thread-safe overloads.
  • Added SessionErrc error codes corresponding to new predefined error URIs that have appeared in the WAMP spec.
  • Added Session::setLogHandler which takes a handler of type void (LogEntry) and unifies all log event handling.
  • Added Session::setLogLevel for use with Session::setLogHandler.

Release v0.10.0

13 Aug 23:27
Compare
Choose a tag to compare

Asio completion token support and thread-safe Session operations.

New features:

  • Callback functions, yield_context, use_awaitable, and use_future now supported as completion tokens.
  • C++20 coroutines now supported
  • Migrated from AsyncResult to new ErrorOr class which better emulates the proposed std::expected.
  • Session's asynchonous operations now return an ErrorOr result when passed a yield_context as the completion token.
  • Added Session overloads with the ThreadSafe tag type which can be called concurrently by multiple threads.
  • Added Realm::captureAbort.
  • Session's setWarningHandler, setTraceHandler, setStateChangeHandler, and setChallengeHandler now take effect immediately even when connected.
  • Users can bind custom executors to their handlers and Session will use them when executing those handlers.
  • Boost.Asio cancellation slot support for Session::call.
  • Added Rpc::withCancelMode which specifies the cancel mode to use when triggered by Asio cancellation slots.
  • Added withArgsTuple, convertToTuple and moveToTuple to Payload class.
  • Added the Deferment tag type (with deferment constexpr variable) to more conveniently return a deferred Outcome` from an RPC handler.

Release v0.9.3

13 Aug 20:51
97dbbef
Compare
Choose a tag to compare

Fix non-compilation of examples.

Release v0.9.1

13 Jul 00:56
Compare
Choose a tag to compare

Add -fPIC when building vendorized static Boost libraries.

Release v0.9.0

12 Jul 21:15
Compare
Choose a tag to compare

Migrated to jsoncons for all serialization.

  • Support for CBOR has been added.
  • Added toString free functions for dumping Variant, Array, and Object as a JSON-formatted std::string.
  • Changed Codec, Transport, and TransportBuffer type requirements.
  • Variant instances are output as true JSON via operator(ostream&, const Variant&) or toString.
  • 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

14 Jun 23:02
Compare
Choose a tag to compare
  • 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

15 May 20:14
Compare
Choose a tag to compare

Support newer Boost.Asio. See CHANGELOG.md for details.

Release v0.6.3

02 Jul 18:44
Compare
Choose a tag to compare

Updated for latest versions of 3rd-party libraries.

Release v0.6.2

28 Mar 19:46
Compare
Choose a tag to compare

Variant conversion enhancements. See CHANGELOG.md for details.