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
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
buildSrc
docs/logo
gradle/wrapper
rd-cpp
rd-kt
rd-net
.editorconfig
.gitignore
LICENSE
README.md
build.gradle.kts
gradlew
gradlew.bat
settings.gradle.kts
versions.gradle.kts

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 6.0
  • 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.