Join the Shiny Community every month at Shiny Gatherings

Rhino 1.6.0 Update on CRAN: Refined Dependency Handling and Node.js Tool Upgrades


Rhino 1.6 has just landed on CRAN!

This version comes with enhancements for dependency management and Node.js utilities, as well as upgrades for stability and security.

Here’s what you need to know.

Enhanced Dependency Management

Rhino relies on {renv} to provide an isolated, reproducible environment for your project. While you can run {renv} functions directly, Rhino also provides utilities which can be used to install, update, or remove a dependency in one step.

Simplify your R workflow, dive into our article, R renv: How to Manage Dependencies in R Projects Easily.

With Rhino 1.6, the pkg_install() function now supports installation not only from CRAN, but also from local sources, GitHub, and Bioconductor! You can use the familiar syntax used by {renv}:


# Install shiny from local source
rhino::pkg_install("~/path/to/shiny")

# Install shiny.i18n package from GitHub
rhino::pkg_install("Appsilon/shiny.i18n")

# Install Biobase package from Bioconductor
rhino::pkg_install("bioc::Biobase")

You can also install a specific version of a package:


# Install a specific version of shiny
rhino::pkg_install("shiny@1.6.0")

Support for Node.js Alternatives

Node.js, together with its official package registry, npm, are big names in modern web development. Rhino relies on them to provide you with state-of-the-art tools for working with JavaScript, Sass, and end-to-end tests.

Recently, viable alternative implementations for Node.js and npm have appeared. They boast improved performance and better disk utilization. Rhino 1.6 introduces a new configuration variable which lets you choose your favourite implementation.

For example, if you have bun installed on your system, you can configure Rhino to use it instead of npm by setting the RHINO_NPM environment variable in your .Renviron file:


RHINO_NPM=bun

You are free to choose any npm-compatible implementation and you can provide a custom path to the executable. For example, to use pnpm installed in a custom location:


RHINO_NPM=/home/user/bin/pnpm

Tooling Upgrades

With Rhino 1.6, we have upgraded all our Node.js tools to the latest versions for increased stability and security. End users are largely unaffected by these changes, but two upgrades might be relevant to you:

  1. The minimum supported Node.js version is now 16. If you have an older version, visit the official Node.js site.
  2. Cypress has been upgraded to version 13. If you have an existing Rhino project, check out our Rhino 1.6 Migration Guide.

We have also refreshed our GitHub Actions setup. The workflow which automatically builds, lints and tests your project is now cleaner and uses the latest dependencies.

Using Latest Rhino

Try out the new features today! You can grab the latest version from CRAN by running:


install.packages("rhino")

To migrate your existing Rhino project check out our Rhino 1.6 Migration Guide.

Rhinoverse Ecosystem

Rhino can be a solid foundation for your Shiny application, but it doesn’t end there. Rhino is the centrepiece of a larger ecosystem – Rhinoverse, a family of open-source R packages created by Appsilon to address the needs of modern web development.

Make sure to check out the other members of the family on rhinoverse. dev!

You May Also Like