Explore a standalone, dependency-free R package for the Data Viewer backend
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
調査の方向性
Start by examining the Data Viewer backend currently implemented inside sess and compare its metadata, paging, sorting, and filtering behavior with the proposed prototype scope of ordinary data frames and matrices. Investigate whether base R formatting and comparison methods, plus a minimal JSON representation, can preserve the listed value behavior without external package dependencies. The investigation is complete when it documents feasibility and installation from a managed library; the issue names no specific files or tests.
索引モデルが issue の本文から書いたものです。
説明
Motivation
The Data Viewer backend is currently implemented inside sess, which depends on external R packages such as jsonlite, processx, and later.
These dependencies can complicate installation and cause conflicts with packages managed by renv, pixi, or other environment managers.
PR #1856 improves installation isolation, but does not eliminate these dependencies.
I propose exploring a small, standalone R package for the Data Viewer backend, similar to how jgd provides a graphics device without external R package dependencies.
Unlike session communication, the enhanced Data Viewer is optional.
If its backend is unavailable, only the enhanced viewer needs to be disabled, without affecting the R session or the standard View() behavior.
The primary goal is dependency isolation and maintainability, not performance optimization.
Proposed direction
- Publish the backend as an independent CRAN package, installed into a vscode-R-managed library rather than bundled with the extension.
- Avoid external R package dependencies (
Imports/LinkingTo), using base R and a small amount of C code where appropriate. - Keep the backend independent of sess, and VS Code-specific communication protocols.
- Reuse existing R methods such as
format()for displaying S3/S4 objects, including vector classes built with vctrs. - Preserve native comparison and sorting semantics independently of formatted display values.
- Generate only the JSON structures required by the Data Viewer, potentially using an embedded C library such as cJSON.
- Keep the existing AG Grid frontend.
A general-purpose serializer such as jsonlite provides much more functionality than the Data Viewer needs.
By normalizing R values into a limited set of display types before JSON encoding, we may be able to avoid both a jsonlite dependency and vendoring its implementation.
Prior art
- jgd: A standalone R graphics device with embedded C code and no external R package dependencies.
- vctrs / pillar: Established conventions for separating vector formatting, type information, and comparison semantics.
- Julia VS Code Table Viewer: Converts language-specific values into a limited JSON representation for AG Grid, with lazy data retrieval.
Initial investigation
A prototype could focus on ordinary data frames and matrices, evaluating:
- Whether the existing metadata, paging, sorting, and filtering behavior can be extracted into a standalone package.
- Whether existing R formatting and comparison methods are sufficient for custom vector classes, including those based on vctrs.
- Whether a minimal JSON encoder can preserve existing behavior for missing values, numeric precision, dates,
integer64, and complex columns. - Whether the package can be installed and loaded from a managed library without modifying
.libPaths().
This is an architectural investigation, not a proposal to immediately replace the current implementation.
PR #1804 (lazy Arrow/DBI viewing) should proceed independently.
Arrow IPC / nanoarrow are not required for the initial prototype.
Separating the Data Viewer also does not eliminate sess's own jsonlite dependency, which is a separate concern related to #1859.
However, an independent backend could eventually be reused through alternative transports such as arf.
Related: #1856, #1859, #1804.
- 主要言語
- TypeScript
- スター
- 1.2k
- フォーク
- 147
- 平均マージ
- 1日 8時間
- マージ済み PR(30日)
- 74
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
REditorSupport/vscode-R のほかの issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
REditorSupport/vscode-R#1846 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
(feat) Additional Arrow support対応中かも @Fred-Wu が 13 日前に担当しました。 オープンenhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
REditorSupport/vscode-R#1785 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 12/100
REditorSupport/vscode-R#1859 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
REditorSupport/vscode-R#1851 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 48/100
REditorSupport/vscode-R#1850 · コメント 4 件 ·
メンテナーはふだん 1 日以内に返信
REditorSupport/vscode-R の issue をすべて見る
似ている issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 83/100
Zettlr/Zettlr#6610 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
Feil lovtekst i bekreftelsen når leder melder unntak fra oppfølgingsplan対応中かも @AudunSorheim が今日担当しました。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 92/100
navikt/syfo-oppfolgingsplan-frontend#1110 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
db-ux-design-system/core-web#8461 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
Cannot run an integration on windows when power shell is selected as the default profile terminalオープンPriority/Blocker Type/Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
wso2/product-integrator#2767 ·
メンテナーはふだん 1 日以内に返信