The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
# Verify RDesk is installed correctly
packageVersion("RDesk")
#> [1] '1.0.4'
# Check that the example app is bundled (if existing)
app_path <- system.file("templates/hello", package = "RDesk")
if (nzchar(app_path)) {
file.exists(app_path)
list.files(app_path)
}
#> [1] "www"RDesk is built on a “Source-to-Binary” philosophy that combines the flexibility of R with the security and performance of native Windows APIs.
launcher.cpp)A lightweight (66.5kb) C++ application that: - Initializes the WebView2 runtime. - Establishes a Zero-Port IPC bridge using standard input/output (stdin/stdout). - Manages the parent window, native menus, and system tray. - Includes an Anti-Zombie Watchdog that ensures R processes are cleaned up when the UI closes.
App.R)An R6-based event loop that: - Runs a non-blocking service loop to process desktop messages. - Manages the Async Engine for background task execution. - Handles high-level desktop operations (File Dialogs, Clipboard, Notifications).
www/)A standard HTML/JS/CSS surface that: - Communicates with R via the
global window.rdesk object. - Pushes events to R using
rdesk.send(type, payload). - Listens for R updates using
rdesk.on(type, callback).
Unlike traditional R web frameworks, RDesk does not open any network
ports (httpuv, WebSockets).
When you run app$run(): 1. R spawns the native launcher
as a child process. 2. The launcher opens the Windows window and starts
the Chromium-based WebView2. 3. R enters a
while(private$.running) loop, servicing the stdin/stdout
pipes. 4. When the user closes the window, the launcher signals R to
exit, ensuring a clean shutdown of all background worker nodes.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.