- An intuitive and extensible reactive programming model which makes it easy to transform existing R code into a "live app" where outputs automatically react to new user input.
- Compared to event-based programming, reactivity allows Shiny to do the minimum amount of work when input(s) change, and allows humans to more easily reason about complex MVC logic.
- A prebuilt set of highly sophisticated, customizable, and easy-to-use widgets (e.g., plots, tables, sliders, dropdowns, date pickers, and more).
- Seamless integration with R Markdown, making it easy to embed numerous applications natively within a larger dynamic document.
- Tools for improving and monitoring performance, including native support for async programming, caching, load testing, and more.
- Modules: a framework for reducing code duplication and complexity.
- An ability to bookmark application state and/or generate code to reproduce output(s).
- A rich ecosystem of extension packages for more custom widgets, input validation, unit testing, and more.
To install the stable version from CRAN:
Once installed, load the library and run an example:
library(shiny) # Launches an app, with the app's source code included runExample("06_tabsets") # Lists more prepackaged examples runExample()
For more examples and inspiration, check out the Shiny User Gallery.
For help with learning fundamental Shiny programming concepts, check out the Mastering Shiny book and the Shiny Tutorial. The former is currently more up-to-date with modern Shiny features, whereas the latter takes a deeper, more visual, dive into fundamental concepts.
To ask a question about Shiny, please use the RStudio Community website.
We welcome contributions to the shiny package. Please see our CONTRIBUTING.md file for detailed guidelines of how to contribute.
The shiny package as a whole is licensed under the GPLv3. See the LICENSE file for more details.
R version support
Shiny is supported on the latest release version of R, as well as the previous four minor release versions of R. For example, if the latest release R version is 4.1, then that version is supported, as well as 4.0, 3.6, 3.5, and 3.4.