{"id":13736133,"url":"https://github.com/Appsilon/rhino","last_synced_at":"2025-05-08T12:32:15.917Z","repository":{"id":37863470,"uuid":"453967512","full_name":"Appsilon/rhino","owner":"Appsilon","description":"Build high quality, enterprise-grade Shiny apps at speed","archived":false,"fork":false,"pushed_at":"2024-10-17T11:10:08.000Z","size":8334,"stargazers_count":291,"open_issues_count":91,"forks_count":24,"subscribers_count":23,"default_branch":"main","last_synced_at":"2024-11-13T09:00:59.320Z","etag":null,"topics":["r","rhinoverse","shiny"],"latest_commit_sha":null,"homepage":"https://appsilon.github.io/rhino","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Appsilon.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-31T10:46:37.000Z","updated_at":"2024-11-03T22:45:13.000Z","dependencies_parsed_at":"2023-12-04T16:27:31.538Z","dependency_job_id":"3e1b8918-efad-43dd-ab2b-d9cb16377673","html_url":"https://github.com/Appsilon/rhino","commit_stats":{"total_commits":789,"total_committers":23,"mean_commits":34.30434782608695,"dds":0.5982256020278833,"last_synced_commit":"7c6106f8857aa5ab647f22075b006f6191a34bb0"},"previous_names":[],"tags_count":50,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Appsilon%2Frhino","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Appsilon%2Frhino/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Appsilon%2Frhino/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Appsilon%2Frhino/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Appsilon","download_url":"https://codeload.github.com/Appsilon/rhino/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224732131,"owners_count":17360416,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["r","rhinoverse","shiny"],"created_at":"2024-08-03T03:01:16.366Z","updated_at":"2024-11-15T04:31:14.427Z","avatar_url":"https://github.com/Appsilon.png","language":"R","funding_links":[],"categories":["Frameworks","R"],"sub_categories":["Foundational frameworks"],"readme":"# Rhino \u003ca href=\"https://appsilon.github.io/rhino/\"\u003e\u003cimg src=\"man/figures/rhino.png\" align=\"right\" alt=\"Rhino logo\" style=\"height: 140px;\"\u003e\u003c/a\u003e\n\u003e _Build high quality, enterprise-grade [Shiny](https://shiny.rstudio.com/) apps at speed._\n\n\u003c!-- badges: start --\u003e\n[![CRAN](https://www.r-pkg.org/badges/version/rhino)](https://cran.r-project.org/package=rhino)\n[![CI](https://github.com/Appsilon/rhino/actions/workflows/ci.yml/badge.svg)](https://github.com/Appsilon/rhino/actions/workflows/ci.yml)\n[![downloads monthly](https://cranlogs.r-pkg.org/badges/rhino)](https://CRAN.R-project.org/package=rhino)\n[![downloads total](https://cranlogs.r-pkg.org/badges/grand-total/rhino)](https://CRAN.R-project.org/package=rhino)\n[![License: LGPL-3.0](https://img.shields.io/badge/License-LGPL--3.0-blue.svg)](https://opensource.org/licenses/LGPL-3.0)\n[![Pharmaverse](http://pharmaverse.org/shields/rhino.svg)](https://pharmaverse.org)\n\u003c!--\n[![codecov](https://codecov.io/gh/Appsilon/rhino/branch/main/graph/badge.svg)](https://codecov.io/gh/Appsilon/rhino)\n--\u003e\n\u003c!-- badges: end --\u003e\n\n## Events\n\n### Upcoming\n\nWould you like to learn about Rhino hands-on? Join our events!\nUpcoming events will be added to this section - stay tuned.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003ch3\u003ePast\u003c/h3\u003e \u003ci\u003e(click to expand)\u003c/i\u003e\u003c/summary\u003e\n\n* [**Open Source Spotlight: New developments in Rhino**](https://events.ringcentral.com/events/shiny-gathering-11-b3775827-5b59-4068-ab59-82d9a262b7f0)\u003cbr\u003e\n2024-02-27 at 18:00 (UTC+1)\u003cbr\u003e\nShiny Gathering led by [Kamil Żyła](https://www.linkedin.com/in/kamil-zyla/)\n\n* [**Best practices for coding Shiny apps with Rhino Team**](https://www.youtube.com/watch?v=QmyilJr7jXs)\u003cbr\u003e\n2023-06-27 at 18:00 (UTC+2)\u003cbr\u003e\nOnline gathering led by [Kamil Żyła](https://www.linkedin.com/in/kamil-zyla/)\n\n* [**Creating Shiny Apps with Rhino: the new framework for Shiny apps**](https://www.youtube.com/watch?v=8H_ZHUy8Yj4)\u003cbr\u003e\n2022-05-13 at 18:00 (UTC+2)\u003cbr\u003e\nOnline workshop led by [Kamil Żyła](https://www.linkedin.com/in/kamil-zyla/)\n\n* [**Introducing Rhino: Shiny application framework for enterprise**](https://www.rstudio.com/conference/2022/talks/introducing-rhino-shiny-application-framework/)\u003cbr\u003e\n2022-07-28 at 15:20 (UTC-4)\u003cbr\u003e\nTalk given by [Kamil Żyła](https://www.linkedin.com/in/kamil-zyla/)\nat [rstudio::conf(2022)](https://www.rstudio.com/conference/2022/2022-conf-talks/)\n\n* **Enterprise-grade Shiny App Development with {rhino}**\u003cbr\u003e\n2022-08-23 at 11:00 (UTC-4)\u003cbr\u003e\nWorkshop led by [Jakub Nowicki](https://www.linkedin.com/in/jakub-nowicki/)\nat [R/Medicine 2022](https://events.linuxfoundation.org/r-medicine/)\n\n* **Introducing Rhino: Shiny application framework for enterprise**\u003cbr\u003e\n2022-09-07 at 11:30 (UTC+1)\u003cbr\u003e\nTalk given by [Jakub Nowicki](https://www.linkedin.com/in/jakub-nowicki/)\nat [EARL 2022](https://www.ascent.io/earl)\n\n* **Rhino Workshop**\u003cbr\u003e\n2022-10-11 at 19:00 (UTC+2)\u003cbr\u003e\nLed by [Kamil Żyła](https://www.linkedin.com/in/kamil-zyla/)\nat [LatinR 2022](https://latin-r.com/en)\n\u003c/details\u003e\n\n## Why Rhino?\n\nRhino allows you to create Shiny apps **The Appsilon Way**  - like a fullstack software engineer. Apply best software engineering practices, modularize your code, test it well, make UI beautiful, and think about user adoption from the very beginning. Rhino is an opinionated framework with a focus on software engineering practices and development tools.\n\nRhino supports your work in 3 main areas:\n\n1. **Clear code**: scalable app architecture, modularization based on Box and Shiny modules.\n2. **Quality**: unit tests, E2E tests with Cypress, logging and monitoring, linting.\n3. **Automation**: project startup, CI with GitHub Actions, dependency management with renv,\nconfiguration management with config, Sass and JavaScript bundling with ES6 support via Node.js.\n\nThese features are often implemented using well-known packages.\nRhino brings them all working together out of the box!\n\nRead more:\n[What is Rhino?](https://appsilon.github.io/rhino/articles/explanation/what-is-rhino.html)\n\n## Share feedback\n\nAre you a Rhino user who want to share your feedback and shape the future of the package?\n\nIf yes, we would be very happy to hear from you in [this anonymous developer survey](https://forms.gle/roNkgvwE1LYCHwED6)! It shouldn't take you more than 5 to 10 minutes to fill it in and it would definitely help us to understand your needs and plan new features.\n\n## Installation\n\nStable version:\n```r\ninstall.packages(\"rhino\")\n```\n\nDevelopment version:\n```r\nremotes::install_github(\"Appsilon/rhino\")\n```\n\n## Documentation\n\n[Rhino documentation](https://appsilon.github.io/rhino/) is divided into four sections,\naccessible from the navigation bar at the top:\n\n1. [**Tutorial**](https://appsilon.github.io/rhino/articles/tutorial/create-your-first-rhino-app.html):\nStart here to learn the basics.\n2. **Explanation**:\nIn-depth articles on Rhino machinery and its design.\n3. **How-to Guides**:\nStep-by-step instructions for common tasks.\n4. **Reference**:\nA list of Rhino functions with technical details.\n\nCheck out our [Rhino Showcase](https://github.com/Appsilon/rhino-showcase),\nan example Shiny application built using Rhino.\n\nYou can also learn about Rhino by watching the video from one of our workshops:\n[Creating Shiny Apps with Rhino: the new framework for Shiny apps](https://www.youtube.com/watch?v=8H_ZHUy8Yj4).\nA repository with step-by-step commits for the workshop application can be found\n[here](https://github.com/Appsilon/rhino-workshop/tree/workshop-2022-05-13).\n\n---\n\nDeveloped with :heart: at [Appsilon](https://appsilon.com).\nGet in touch: \u003copensource@appsilon.com\u003e.\n\nExplore the [Rhinoverse](https://rhinoverse.dev) - a family of R packages built around [Rhino](https://appsilon.github.io/rhino/)!\n\nAppsilon is a\n[**Posit (formerly RStudio) Full Service Certified Partner**](https://www.rstudio.com/certified-partners/).\n\n\u003ca href=\"https://appsilon.com/careers/\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/Appsilon/website-cdn/gh-pages/WeAreHiring1.png\" alt=\"We are hiring!\"\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAppsilon%2Frhino","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAppsilon%2Frhino","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAppsilon%2Frhino/lists"}