- 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:
# Launches an app, with the app's source code included
# Lists more prepackaged examples
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.
For bug reports, please use the issue tracker and also keep in mind that by writing a good bug report, you're more likely to get help with your problem.
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.