Skip to content
Reactive Distributed communication framework for .net, kotlin, js. Inspired by Rider IDE.
C# Kotlin C++ CMake Shell Batchfile
Branch: master
Clone or download
knah Merge pull request #38 from JetBrains/193-contexts
Add RdContexts as a generalization of ClientId
Latest commit f24eba2 Dec 6, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
buildSrc update gold & add script for update gold Dec 4, 2019
docs/logo icons for libraries Sep 6, 2019
gradle/wrapper Update gradle to 5.6.2 Sep 10, 2019
rd-cpp update gold & add script for update gold Dec 4, 2019
rd-kt Fix sync tests after sync fix merge Dec 5, 2019
rd-net Merge remote-tracking branch 'origin/master' into 193-contexts Dec 5, 2019
.editorconfig editorconfig Oct 2, 2019
.gitignore gitignore ++ Oct 2, 2019
LICENSE
README.md adapt cross test to new build model && gradle 5 Oct 3, 2019
build.gradle.kts include cross test in build | minor build improvements Oct 21, 2019
gradlew RIDER-28318 Create NuGet build script for Rd. May 29, 2019
gradlew.bat Add gradlew scripts; update Gradle version Mar 26, 2018
settings.gradle.kts exclude rd-cpp Oct 30, 2019
versions.gradle.kts clear main buildscript and dependencies through the whole project Sep 21, 2019

README.md

RD

Reactive Distributed communication framework for .net, kotlin, js, c++. Inspired by Rider IDE.

First Step(Build)

Firstly decide which languages will be involved in protocol. It may be Kotlin and C#, Rider uses them for instance. Or C++ only, who knows. After that prepare the environment and build needed assemblies. Choose separate or common build based on needs.

Separate build

C#

Requirements

  • .NET Framework >= 3.5

Instruction

  • cd rd-net
  • ./build.cmd

or

  • gradle :rd-net:build -x test

Kotlin

Requirements

  • Gradle 5.6.2
  • Kotlin 1.3.50+

Instruction

  • gradle :build -x test

C++

Requirements

  • git
  • cmake
  • Visual Studio 2015+ or
  • clang 6.0+

Instruction

  • cd rd-cpp
  • ./build.cmd

or

  • gradle :rd-cpp:build -x test

Common build

Requirements

All above ones.

Instruction

  • gradle build

Second step(Generation models)

Further generate models in each language you have chosen. For this purpose project :rd-gen must be built.

Instruction

See https://www.jetbrains.com/help/resharper/sdk/Products/Rider.html#protocol-extension for more details.

More examples of models

See com.jetbrains.rd.generator.test.cases.generator.demo.DemoModel and com.jetbrains.rd.generator.test.cases.generator.example.ExampleModel

Last step(Connection the sides)

Generally it depends on the architecture. But in standard Client-Server architecture through localhost connection framework's classes are suitable.

C#

JetBrains.Rd.Impl.Server and *.Client respectively

Kotlin

com.jetbrains.rd.framework.Server and *.Client respectively

С++

rd::SocketWire::Server and *.Client respectively

Examples of connections

Look at cross tests

  • com.jetbrains.rd.framework.test.cross at Kotlin side
  • Test.RdCross at C# side
  • rd::cross at C++ side
You can’t perform that action at this time.