rd

Reactive Distributed communication framework for .NET, Kotlin, C++. Inspired by Rider IDE.

APACHE-2.0 License

Stars
373
Committers
56

Bot releases are hidden (Show)

rd - 2022.2.3 (Maven only)

Published by ForNeVeR over 2 years ago

Fixed

  • rd-kt: adviseSuspended doesn't check lifetime termination before executing a handler (CWM-6511)
rd - 2022.3.0

Published by ForNeVeR over 2 years ago

Changed

  • rd-kt, rd-net: make available RdContext::updateValue method with disposable cookies instead of try/finally set and restore (or PushContext / PopContext) approach
  • rd-gen: upgrade to Kotlin 1.7

Added

  • rd-gen: update the Extension mechanism to support both protocol types and custom types as extensions (the main use case being able to use LocalizableString on .NET side together with @Nls String in Kotlin)

Removed

  • rd-gen: JetBrains.RdGen package is no longer published
rd - 2022.2.2 (NuGet only)

Published by ForNeVeR over 2 years ago

Changed

  • rd-net: RdFault is now serializable
rd - 2022.2.1

Published by ForNeVeR over 2 years ago

Added

  • rd-net: Assert.FailWithResult that allow throw an assertion exception and return a value where it's expected e.g. default cases of switch expressions over enums

Changed

  • rd-net, rd-kt, rd-gen: new threadLocalContext
rd - 2022.2.0

Published by ForNeVeR over 2 years ago

Changed

  • rd-kt: startSuspending on async Rd calls will now use the current coroutine context for response scheduler

    This means that calls will now return to the current context instead of the default one. For example, if an RdCall was called from a background scheduler, then the background scheduler will be used to handle the response. Previously, the main scheduler (usually, an UI/EDT one) was used by default in such cases.

    Note this only affects the calls marked as .async in the model.

  • rd-kt: sync Lifetime implementation with rd-net

    • LifetimeStatus: Canceled renamed to Canceling (Canceled is still there for most use cases, but marked as deprecated)
    • lifetime termination timeout is now customizable, see Lifetime::setTerminationTimeoutMs and Lifetime::terminationTimeoutKind
  • rd-net: LifetimeTerminationKind is now taken into account when performing Lifetime::Intersect

  • rd-cpp, rd-kt, rd-net: exceptions during ping are now only logged in debug/verbose mde

  • rd-net: small performance improvements (use EqualityComparer<T>.Default instead of just Equals)

  • rd-cpp: fixes ported from UnrealLink

  • rd-cpp: update gtest and spdlog dependencies

  • rd-cpp: fix deprecations and compiler warnings

Added

  • rd-kt: new extension function Lifetime.createTerminatedAfter(Duration, CoroutineContext)
  • rd-kt: new API: bracketIfAlive2 and bracketOrThrow2 to avoid closures in cases when the value returned by opening should be reused
  • rd-net: LifetimeDefinition::ExecutionWasNotCancelledByTimeout signal (may be used for diagnostics, i.e. to collect a thread dump)
  • rd-cpp: C++20 compatibility
rd - 2022.1.5 (NuGet only)

Published by ForNeVeR over 2 years ago

Changed

  • rd-net: removed NRT support from .NET 3.5 assemblies (that was causing problems on older versions of Mono C# compiler)
rd - 2022.1.4 (NuGet only)

Published by ForNeVeR over 2 years ago

Changed

  • rd-net: get rid of System.Memory reference which was used for string interpolation
rd - 2022.1.3

Published by ForNeVeR over 2 years ago

Removed

  • (Breaking!) rd-net: WebSocketSharp

Added

  • rd-net: interpolated string handlers support in logging and assertions
  • rd-net: support CallerArgumentExpression in NotNull extension methods

Changed

  • rd-net: Trace() (without parameters) renamed to WhenTrace(), old name obsolete
  • rd-net: added more assertions in Rd.Reflection

Fixed

  • rd-net, rd-kt: fix exceptions caused by lifetime termination during protocol entity binding
  • rd-net: improve behavior of DictionaryEx.BlockingAddUnique (support termination while waiting to take a lock)
rd - 2021.3.5 (Maven only)

Published by ForNeVeR almost 3 years ago

Changed

  • rd-kt: improve memory efficiency of Lifetime
rd - 2022.1.2 (Maven only)

Published by ForNeVeR almost 3 years ago

Fixes

  • rd-gen: fix compatibility issues in the create generated method
rd - 2022.1.1

Published by ForNeVeR almost 3 years ago

Changed

  • rd-cpp: improve socket state logging
  • rd-kt: improve memory efficiency of Lifetime

Added

  • rd-net: CalledArgumentExpression support in Assertion and Logger APIs
  • rd-gen (Kotlin): top-level protocol extension caching
rd - 2022.1.0

Published by ForNeVeR almost 3 years ago

Changed

  • rd-net: nullable reference types annotated
  • rd-kt: nextNotNullValue now returns a non-nullable type
  • rd-kt, rd-net: improve socket state logging
  • rd-kt: small optimization of BitSlice

Fixed

  • rd-kt, rd-cpp: fix issues with datetime parsing (it was not precise in some cases)

Added

  • rd-gen: support defaults for attributed (e.g. NLS) strings
  • rd-kt: remove the requirement of lifetime passing from coroutine helpers
  • rd-net: allow to override the default termination timeout per lifetime
rd -

Published by ForNeVeR about 3 years ago

  • RdGen for C#: InheritsAutomation setting now generates override event, because RdBindableBase has a virtual event of the same name
rd -

Published by ForNeVeR about 3 years ago

rd -

Published by ForNeVeR about 3 years ago

rd -

Published by ForNeVeR about 3 years ago

rd - 2021.3.0

Published by ForNeVeR about 3 years ago

rd - 2020.1.2

Published by mfilippov over 4 years ago

Fix memory leaks.