How to learn more about how RStudio works

June 21, 2018 @robertmitchellv Robert Mitchell

@robertmitchellv wrote:

I'm really interested in learning more about how the RStudio IDE works and am not sure where I should start.

I cloned the repo and poked around a little bit but I'm way out of my depth. If I want to hack a bit to see if there's an add in or some other thing I can contribute--where should I start?

Thanks!

edit:

  • I didn't realize add-ins were just R functions--to clarify, I'm trying to learn more about how RStudio is put together and how it works. Like, if the IDE were LEGOs, how is it built and why does it work?
  • @jcblum suggested to check out Ace, which RStudio depends on, thanks :+1:

@jonathan shared this:

  • RStudio is basically a client/server app.
  • The client is a Web app written using GWT. You'll see lots of Java in the repo; it's all transpiled to JavaScript.
  • The server is all C++, and makes heavy use of asynchronous and functional utilities supplied by Boost.
  • All of the communication between the client and server occurs via JSON-RPC. If you go to Help | Diagnostics | Request Log you'll see a neat visualization of the chatter between the client and server. Reading this will help you understand how the two pieces work together.
  • The piece that's the most interesting for you (probably) and offers the most opportunities for experimentation and extension is the R Session module, which binds to R itself by loading it as a shared library and wiring up callbacks. This module is called rsession and can be found in src/cpp/session.

Posts: 7

Participants: 3

Read full topic

Previous Article
Resources for new R admins
Resources for new R admins

@ablack3 wrote: I am about to embark on the R admin journey. I'll be managing a ...

Next Article
Analysis package naming, or can package name differ from .Rproj name?
Analysis package naming, or can package name differ from .Rproj name?

@jalsalam wrote: I am attempting to explore different approaches for packing up ...