httpgd icon indicating copy to clipboard operation
httpgd copied to clipboard

Asynchronous http server graphics device for R.

httpgd

R-CMD-check CRAN downloads Codecov test coverage

A graphics device for R that is accessible via network protocols. This package was created to make it easier to embed live R graphics in integrated development environments and other applications. The included HTML/JavaScript client (plot viewer) aims to provide a better overall user experience when dealing with R graphics. The device asynchronously serves graphics via HTTP and WebSockets.

Features

  • Fast plotting
  • Plot resizing and history
  • Interactive plot viewer (client)
  • Platform independent
  • Export to various image formats (SVG, PNG, PDF, EPS, ...)
  • Multiple concurrent clients
  • For developers:
    • Stateless asynchronous HTTP/WebSocket API
    • In-memory access to rendered plots
    • HTML/JavaScript client (TypeScript module)

Demo

Installation

Install httpgd from CRAN:

install.packages("httpgd")

Or get the latest development version from GitHub:

remotes::install_github("nx10/httpgd")

See system requirements for troubleshooting.

Documentation

Contributions welcome!

The various components of httpgd are written in C++, R and TypeScript. We welcome contributions of any kind.

Other areas in need of improvement are testing and documentation.

Links & Articles

About & License

Depends on cpp11 and systemfonts.

Webserver based on Boost/Beast included in the BH package.

Much of the font handling and SVG rendering code is modified code from the excellent svglite package.

This project is licensed GPL v2.0.

It includes parts of svglite (GPL ≥ 2), Belle (MIT) and fmt (MIT). The HTML client includes Material Design icons by Google which are licensed under the Apache License Version 2.0.

Full copies of the license agreements used by these components are included in ./inst/licenses.