Skip to content

Make sess dependencies optional with an arf-backed transport #1859

Description

@eitsupi

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

Activity

  1. added this to the 3.x milestone on Oct 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions