https://github.com/nx10/httpgd
Asynchronous http server graphics device for R.
https://github.com/nx10/httpgd
Last synced: 14 days ago
JSON representation
Asynchronous http server graphics device for R.
- Host: GitHub
- URL: https://github.com/nx10/httpgd
- Owner: nx10
- License: gpl-2.0
- Created: 2020-05-18T17:54:42.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2025-04-16T15:36:16.000Z (7 months ago)
- Last Synced: 2025-04-22T06:49:52.722Z (7 months ago)
- Language: C++
- Homepage: https://nx10.github.io/httpgd
- Size: 7.8 MB
- Stars: 430
- Watchers: 6
- Forks: 22
- Open Issues: 43
-
Metadata Files:
- Readme: README.md
- Changelog: NEWS.md
- License: LICENSE
Awesome Lists containing this project
- jimsghstars - nx10/httpgd - Asynchronous http server graphics device for R. (C++)
README
# `httpgd` 
[](https://github.com/nx10/httpgd/actions/workflows/R-CMD-check.yaml)
[](https://CRAN.R-project.org/package=httpgd)

[](https://app.codecov.io/gh/nx10/httpgd?branch=master)
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
* Interactive plot viewer (client)
* Supports multiple clients concurrently
* Plot resizing and history
* Export various image formats (SVG, PNG, PDF, EPS, ...)
* Powered by [`unigd`](https://github.com/nx10/unigd)
* For developers:
* Stateless asynchronous HTTP/WebSocket API
* HTML/JavaScript client (TypeScript module)
## Demo

## Installation
Install `httpgd` from CRAN:
```R
install.packages("httpgd")
```
Or get the latest development version from GitHub:
```R
remotes::install_github("nx10/httpgd")
```
See [system requirements](https://nx10.github.io/httpgd/articles/a00_installation.html#system-requirements) for troubleshooting.
### Documentation
- For users:
- [How to get started](https://nx10.github.io/httpgd/articles/a01_how-to-get-started.html)
- [Plotting in `unigd`](https://nx10.github.io/unigd/articles/b00_guide.html)
- [Function reference](https://nx10.github.io/httpgd/reference/index.html)
- IDEs & evironments:
- [VS Code](https://nx10.github.io/httpgd/articles/b01_vscode.html)
- [RStudio](https://nx10.github.io/httpgd/articles/b02_rstudio.html)
- [Docker](https://nx10.github.io/httpgd/articles/b03_docker.html)
- For package developers:
- [httpgd API](https://nx10.github.io/httpgd/articles/c01_httpgd-api.html)
## 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
- [Using httpgd in VSCode: A web-based SVG graphics device](https://renkun.me/2020/06/16/using-httpgd-in-vscode-a-web-based-svg-graphics-device/)
## About & License
Depends on `cpp11`.
Webserver based on [`CrowCpp/Crow`]().
This project is licensed GPL v2.0.
The HTML client includes [Material Design icons by Google](https://github.com/google/material-design-icons) which are licensed under the [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt).
Full copies of the license agreements used by these components are included in [`./inst/licenses`](https://github.com/nx10/httpgd/tree/master/inst/licenses).