Motivation
vscode-R relies on the bundled sess package for session integration, including workspace inspection, viewers, and editor communication.
Although sess is now a pure R package, it still requires third-party dependencies such as processx, later, jsonlite, and rstudioapi.
These complicate installation, particularly in isolated environments managed by renv, pixi, etc.
PR #1856 improves installation isolation but does not eliminate these dependencies.
Meanwhile, arf already provides an IPC server implemented in Rust, potentially making much of sess's R-based communication infrastructure unnecessary.
Goal
Enable vscode-R session integration through arf without requiring third-party R packages.
This does not necessarily mean eliminating sess itself. Its pure-R runtime functionality could remain available while delegating communication to arf.
Ordinary R consoles and other frontends should continue using the existing sess transport.
Proposed direction
- Separate transport from runtime functionality. Reuse sess's existing workspace, viewer, and runtime integration logic across different transports.
- Use arf's IPC server. Extend its generic capabilities where necessary, particularly for structured R queries and event notifications, without introducing vscode-R-specific APIs.
- Make dependencies optional. Remove
processx, later, and jsonlite requirements from the arf-backed path, and make rstudioapi integration optional. Existing uses outside the transport layer will also need attention.
- Integrate incrementally. Start with ordinary arf terminals and subsequently consider R Interactive, reusing existing abstractions where appropriate.
Scope
This is a long-term architectural direction, not a proposal to replace sess entirely or remove support for other R frontends.
The goal is to reduce installation requirements without duplicating session functionality or compromising compatibility.
Related
Motivation
vscode-R relies on the bundled sess package for session integration, including workspace inspection, viewers, and editor communication.
Although sess is now a pure R package, it still requires third-party dependencies such as
processx,later,jsonlite, andrstudioapi.These complicate installation, particularly in isolated environments managed by renv, pixi, etc.
PR #1856 improves installation isolation but does not eliminate these dependencies.
Meanwhile, arf already provides an IPC server implemented in Rust, potentially making much of sess's R-based communication infrastructure unnecessary.
Goal
Enable vscode-R session integration through arf without requiring third-party R packages.
This does not necessarily mean eliminating
sessitself. Its pure-R runtime functionality could remain available while delegating communication to arf.Ordinary R consoles and other frontends should continue using the existing sess transport.
Proposed direction
processx,later, andjsonliterequirements from the arf-backed path, and makerstudioapiintegration optional. Existing uses outside the transport layer will also need attention.Scope
This is a long-term architectural direction, not a proposal to replace sess entirely or remove support for other R frontends.
The goal is to reduce installation requirements without duplicating session functionality or compromising compatibility.
Related