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 - Release 2024.1.1 Latest Release

Published by Iliya-usov 8 months ago

Changed

  • [rd-net] UnsafeWriter/UnsafeReader: simple methods for compact UTF8 string serialization + code cleanup to use explicit Write* API
rd - Release 2024.1.0

Published by Iliya-usov 8 months ago

Changes

  • [rd-kt, rd-net] Remove length restrictions for pretty printer
  • Docs: update instructions and links
  • Add coroutine scope to Lifetime (https://github.com/JetBrains/rd/pull/432)
  • [rd-kt] Allow creation on background by default on kotlin side.
  • Delegate creating extensions to parent protocol.
  • [rd-net] Enable cross-platform tests
  • Lazy serializers
  • Improve logging
  • Backend listeners support.
  • Support multiline comments
  • [rd-net] Additional diagnostics for lifetimes
  • [rd-cpp] Support task result lifetimes.
  • [rd-cpp] Auto-binding for bindable task results.

Fixes

  • [rd-kt, rd-net] Fix Already has RdId exception when reassign RdProperty
  • Ensure counterpart is not called with terminated lifetime.
  • Fix memory leak in dispatcher.
  • Fix SignalFlow (https://github.com/JetBrains/rd/pull/434)
  • Fix serializers (https://github.com/JetBrains/rd/pull/438)
  • Do not assert binding thread for ext (https://github.com/JetBrains/rd/pull/436)
  • Dot not create new lifetime if requestLifetime is Eternal.
  • [rd-cpp] Fix compilation on the latest clang
  • [rd-net] Lifetime.Eternal.KeepAlive should throw an assertion
  • [rd-net] ProcessWatchdog: no longer fail on exit code 259 on Windows
  • [rd-net] Grant the condition call if SpinUntil() has zero timeout.
  • [rd-net] Fix unexpected timeout errors in logs during laptop sleeping.
  • [rd-cpp] Fix to_string using deprecated API (not actually fixing, but covering with bunch of pragmas and platform specific implementations)
  • [rd-cpp] Fix diamond inheritance that started to fail to compile with latest VC++
  • [rd-cpp] Fix utf support in to_string
  • [rd-net] Add [CodeAnalysis.NotNull] for NotNull extension-methods.
  • [rd-cpp] Fix c++ tests and enable them in CI.
  • [rd-cpp] Fix multi-threading issues with sockets.
  • [rd-cpp] Fix invalid error messages when socket closed by client.
  • [rd-cpp] Fix array fields serialization and generation.
  • [rd-cpp] Fix issues with access to released bounded call results.
  • [rd-cpp] Fix memory-leaks for closures in signals after Lifetime termination.
  • [rd-cpp] Fix serialization of uninitialized properties.
rd - 2024.1.0-pre1

Published by mirasrael 9 months ago

Changes

  • Add coroutine scope to Lifetime (https://github.com/JetBrains/rd/pull/432)
  • [rd-kt] Allow creation on background by default on kotlin side.
  • Delegate creating extensions to parent protocol.
  • [rd-net] Enable cross-platform tests
  • Lazy serializers
  • Improve logging
  • Backend listeners support.
  • Support multiline comments
  • [rd-net] Additional diagnostics for lifetimes
  • [rd-cpp] Support task result lifetimes.
  • [rd-cpp] Auto-binding for bindable task results.

Fixes

  • Ensure counterpart is not called with terminated lifetime.
  • Fix memory leak in dispatcher.
  • Fix SignalFlow (https://github.com/JetBrains/rd/pull/434)
  • Fix serializers (https://github.com/JetBrains/rd/pull/438)
  • Do not assert binding thread for ext (https://github.com/JetBrains/rd/pull/436)
  • Dot not create new lifetime if requestLifetime is Eternal.
  • [rd-cpp] Fix compilation on the latest clang
  • [rd-net] Lifetime.Eternal.KeepAlive should throw an assertion
  • [rd-net] ProcessWatchdog: no longer fail on exit code 259 on Windows
  • [rd-net] Grant the condition call if SpinUntil() has zero timeout.
  • [rd-net] Fix unexpected timeout errors in logs during laptop sleeping.
  • [rd-cpp] Fix to_string using deprecated API (not actually fixing, but covering with bunch of pragmas and platform specific implementations)
  • [rd-cpp] Fix diamond inheritance that started to fail to compile with latest VC++
  • [rd-cpp] Fix utf support in to_string
  • [rd-net] Add [CodeAnalysis.NotNull] for NotNull extension-methods.
  • [rd-cpp] Fix c++ tests and enable them in CI.
  • [rd-cpp] Fix multi-threading issues with sockets.
  • [rd-cpp] Fix invalid error messages when socket closed by client.
  • [rd-cpp] Fix array fields serialization and generation.
  • [rd-cpp] Fix issues with access to released bounded call results.
  • [rd-cpp] Fix memory-leaks for closures in signals after Lifetime termination.
  • [rd-cpp] Fix serialization of uninitialized properties.
rd - 2023.3.1

Published by ForNeVeR about 1 year ago

Added

  • rd-kt: IScheduler::executionOrder to provide and consume more details on the scheduler
  • rd-kt: ISignal<T>.asFlow()

Changed

  • rd-kt: coroutine API is moved to rd-core
  • rd-kt: IViewableConcurrentSet has been renamed to IMutableViewableConcurrentSet
  • rd-kt: IAppendOnlyViewableConcurrentSet has been renamed to IViewableConcurrentSet
  • rd-kt: adviseOn now uses a sequential scheduler always
  • rd-kt: proper threading for outOfSyncModels
rd - 2023.3.2 (JVM-only)

Published by ForNeVeR about 1 year ago

Changed

  • rd-kt: allow to create Exts from background thread
  • rd-kt: RdCoroutineScope no longer relies on a lifetime (should only be overridden once)
  • rd-kt: lazily initialized CoroutineScope is now a member of a Lifetime

Fixed

  • rd-kt: SignalFlow should no longer get stuck
  • rd-kt: ConcurrentViewableSet::view's callback should get correct item lifetime now
rd - 2023.3.0

Published by ForNeVeR about 1 year ago

Fixed

  • rd-gen: if no model sources are defined, the Gradle task won't pass the -s argument to the RdGen tool (and so it won't break with no sources passed)

    This allows the users to optimize model compilation on their side, and only provide model classes in a compiled form in cases when there are a lot of them, and so incremental compilation is beneficial.

rd - Release 2023.2.2

Published by Iliya-usov over 1 year ago

rd - 2023.2.1

Published by ForNeVeR over 1 year ago

Changed

  • Breaking! rd-gen: more composable inheritance DSL: instead of val interface3 = interfacedef.extends(interface1, interface2) it's possible to write val interface3 = interfacedef extends interface1 extends interface2. Both extends and implements are used this way from now.
  • Breaking! rd-kt, rd-gen: Kotlin 1.8 and JVM 17 are now required.
rd -

Published by ForNeVeR over 1 year ago

  • rd-gen: fix default values for nullable struct parameters in C#
  • rd-reflection: built-in serializer improvements
  • rd-reflection: resolve overloads of Write method
  • rd-reflection: allow to override RPC call timeouts with [RpcTimeout]
  • rd-gen: automatic cleanup of temporary files generated
  • rd-kt, rd-net: fix an issue with RdCall not transferring the data that was passed during list initialization
  • rd-kt: declare RdBindableBase::parent as public
rd - 2023.1.2

Published by ulex over 1 year ago

What's Changed

rd-gen

rd-kt

rd-net

rd-net reflection

rd - 2023.1.1

Published by Iliya-usov almost 2 years ago

Added

  • rd-net: support for more than 7 arguments in method calls
  • rd-net: Add overloads for IRdEndpoint::Set

Changed

  • rd-kt: Do not use advise priority to submit ext created signal
rd - 2023.1.0

Published by ulex almost 2 years ago

Added

Changed

Removed

Fixed

Full Changelog: https://github.com/JetBrains/rd/compare/2022.3.4...2023.1.0

rd - 2022.3.4

Published by Iliya-usov almost 2 years ago

Changed

  • rd-net: RdReflection: generic parameters are allowed in Intrinsic4
  • rd-net, rd-kt: Cancel rdTask when passed lifetime is already Terminated
  • rd-kt: FIx stofl in getLogger
  • rd-kt: Optimize getLogger
rd - 2022.3.3

Published by Iliya-usov about 2 years ago

Added

  • rd-kt: add lifetimedCoroutineScope
  • rd-kt: Unify top-level and nested ext generation
  • rd-net: add overloads with interpolated string handlers for logger API
  • rd-net: RdReflection: support composition of reactive primitives
  • rd-net: Introduce Mode.Assertion to avoid having checked NuGet package
  • rd-net: Fix a race condition with Lifetime.ToCancellationToken()

Deprecated

  • rd-kt: launchChild, startChildAsync

Changed

  • rd-kt: Mark Property::value and OptProperty::value as volatile
  • rd-net: Performance: short-circuit Bind for collections
  • rd-net: Migration from JET_MODE_ASSERT to Mode.Assertion
  • rd-net: UnsafeReader asserts optimization

Removed

  • (breaking!) rd-net: Drop default constructors of RdList, RdMap, etc
rd -

Published by ForNeVeR about 2 years ago

Removed

  • (breaking!) rd-net: SequentialScheduler (it's recommended to keep it in external source where it's possible to use System.Threading.Channels; see this commit for reference implementation)

Added

  • rd-kt: a workaround for RIDER-77529, which allows to set rd.max.message.length system property to override max protocol message length (300 MB by default)
  • rd-net: new overloads for Lifetime.Start* methods with an ability to pass diagnostic information
  • rd-net: JetBrains.Diagnostics.ProcessWatchdog: support beforeKill callback
  • rd-net: Fix NullReferenceException and a possible race condition at JetBrains.Lifetimes.LifetimeDefinition.ToCancellationToken()
  • rd-net: reduce memory traffic in protocol contexts using a thread-static object pool
  • rd-net: add Memory::VolatileRead and Memory::VolatileWrite for Bool
  • rd-net: add interpolated string handlers for all log levels
  • rd-net: slight improvements to TaskEx::NoAwait behavior to use less resources
  • rd-gen: interfaces in C# generated code are now public

Fixed

  • rd-gen: workaround for resource lookup in .jar files without directory entries
  • rd-net: ReactiveEx::NextValueAsync may have not complete the resulting task if the condition passed haven't returned true for the first call
  • rd-kt: fix behavior of IMutableViewableMap::putAll (#338)
  • rd-kt, rd-net: make changes to fix race condition in extension listener possible
  • rd-kt, rd-net: fix for AdviceOnce (now really guaranteed to run once and not more in single-thread scenario)

Changed

  • rd-net: UnsafeWriter::Alloc signature has changed, the contract docs updated
rd - 2022.2.6 (Maven only)

Published by ForNeVeR about 2 years ago

Fixed

  • rd-gen: workaround for resource lookup in .jar files without directory entries
rd - 2022.2.5 (Maven only)

Published by ForNeVeR over 2 years ago

Changed

  • rd-kt: it is now possible to dynamically override SocketWire.maxMessageLength
rd - 2022.2.4 (Maven only)

Published by ForNeVeR over 2 years ago

Added

  • rd-kt: a workaround for RIDER-77529, which allows to set rd.max.message.length system property to override max protocol message length (300 MB by default)
rd - 2022.3.1

Published by ForNeVeR over 2 years ago

Fixed

  • rd-kt: adviseSuspended doesn't check lifetime termination before executing a handler (CWM-6511)
  • rd-net: RdContextBase::UpdateValueBoxed and RdContext<T>::UpdateValue methods are now public

Added

  • rd-net: machine-readable third-party dependency listing