Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

com.jetbrains.rd:rd-core

Package Overview
Dependencies
Maintainers
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

com.jetbrains.rd:rd-core

Core reactive programming utilities.

  • 2024.3.0
  • Source
  • Maven
  • Socket score

Version published
Maintainers
2
Source

RD

official JetBrains project Maven Central

Reactive Distributed communication framework for .NET, Kotlin and C++ (experimental). Inspired by JetBrains Rider IDE.

Structure

The framework contains several libraries for single process usage and cross-process communication.

Lifetimes

JetBrains Core library for graceful disposal, concurrency and reactive programming. For single-process usage.

RdFramework

JetBrains Networking library for reactive distributed communication

RdFramework.Reflection

Plugin for RdFramework used for defining models using regular C#

RdGen

Rd Generator: generates stubs (Kotlin/C#/C++) classes by Kotlin DSL models

How to build

Firstly decide which languages will be involved in the 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

.NET

Open solution in JetBrains Rider: https://github.com/JetBrains/rd/tree/HEAD/rd-net/Rd.sln

Requirements
  • .NET Framework >= 3.5
Console build instructions
  • dotnet build rd-net/Rd.sln

Kotlin

Open the project in IntelliJ IDEA: https://github.com/JetBrains/rd

Requirements
  • Gradle 6.2.2
  • Kotlin 1.3.61
Console build instructions
  • ./gradlew :build -x test

C++ (experimental)

Open the project in CLion: https://github.com/JetBrains/rd/tree/HEAD/rd-cpp

Requirements
  • git
  • cmake
  • Visual Studio 2015+ or
  • clang 6.0+
Console build instructions
  • cd rd-cpp
  • ./build.cmd

or

  • gradle :rd-cpp:build -x test

Build everything

  • ./gradlew build

Build NuGet packages instructions

To build packages locally please use: rd-kt/rd-gen/pack.sh

* Right now it works only on Linux. Please use Docker for Windows or macOS.

Run tests (Kotlin part only)

On a local computer

Don't forget to set TEAMCITY_VERSION=1 (temporary measure for now) before running any tests.

$ ./gradlew build

In a Docker container

$ docker build . -t rd && docker rm rd && docker run -it --name rd rd

To run particular tests (e.g. :rd-gen:test):

$ docker build . -t rd && docker rm rd && docker run -it --name rd rd --entrypoint ./gradlew :rd-gen:test

To extract test results afterwards:

$ docker cp rd:/rd/rd-kt/rd-gen/build/reports/ T:\Temp\reports

How to generate models (stubs)

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/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

How to connect processes

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

C++

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

License

Rd is licensed under the Apache 2.0 license. Rd distributions may include third-party software licensed separately; see THIRD-PARTY-NOTICES for details.

FAQs

Package last updated on 19 Sep 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc