How to Run R-Shiny without a Server at posit::conf(2023)

  • Shiny apps need a server to run, but not everyone has access to one.
  • Web assembly (wasum) allows running R/Shiny without a server, but it’s not a walk in the park.
  • People have made incredible strides in making this tech work, leading to new possibilities for Shiny apps.
  • The cost: computational complexity for users, a challenge to overcome.
  • It’s an uphill battle, but the progress is impressive.
  • The future of Shiny is looking bright, with new opportunities emerging. 🌟

Introduction

[Applause] Thank you today going to talk about shiny without server uh but there uh it’s my attention that there in our community might not know server even is and that’s totally okay a server a that’s connected to the internet and stands ready at all times serve up your shiny app using r or python which sense our apps are written r or python if you want to your shiny with people need it.

What is a Server?

A server is a requirement for running R or Python-based shiny apps. It needs to stand ready at all times to serve up your shiny app.

Different Types of Servers

Servers come in different sizes and shapes. There are servers like a Raspberry Pi that can serve your app, and then there are enterprise-level server solutions with different pros and cons.

Challenges for Academics and Hobbyists

Academics, hobbyists, and freelancers often face severe resource constraints. The cost of computational complexity impacts their ability to express shiny apps effectively.

Evolution of Web Assembly (WASUM) 💡

A few years ago, the introduction of Web Assembly brought a significant shift in the capability of browsers. This technology allows for compilers to emit code that runs in the browser, opening up new possibilities for running shiny apps without traditional servers.

Limitations of Web Assembly

While Web Assembly introduces exciting new possibilities, it also comes with certain limitations such as the inability to launch processes, open network connections, or perform input/output operations natively.

Overcoming Challenges with Web Assembly

Despite the limitations, innovators and developers have pushed the boundaries of what’s possible. Individuals like Michael Boon and George have made significant contributions to enabling the execution of R and Python-based shiny apps within the browser.

Bridging the Gap with Web Assembly

The introduction of shiny live Cordo extension has further enhanced the capabilities of running R-based shiny apps without a traditional server. This groundbreaking work has opened up new possibilities for a variety of applications.

Embracing New Possibilities

The drastic decrease in the cost of computational resources has allowed for the exploration of new possibilities previously inaccessible. Usage of shiny live has extended to various scenarios, including educational tools and clinical data reporting.

Unlocking Potential with Web Assembly

The integration of Web Assembly technology with shiny apps has the potential to revolutionize various fields by empowering developers, educators, and researchers to maximize the capabilities of R and Python in a server-less environment.

Conclusion

The advancements in Web Assembly and R-shiny integration have paved the way for a new era of web development, offering unprecedented flexibility and accessibility. With the availability of shiny live extensions and capabilities, the possibilities for creating innovative applications are endless.

Key Takeaways

  • Servers are essential for running R and Python-based shiny apps.
  • Web Assembly technology has enabled the execution of shiny apps within the browser.
  • The development of shiny live extensions has expanded the capabilities of running server-less R-based shiny apps.

FAQ

  • How can I begin running shiny apps without a server?
  • What are the limitations of Web Assembly technology for running shiny apps?
  • Are there any alternatives to traditional server setups for running R and Python-based shiny apps?

References

  • Shiny Live: https://shiny.io
  • Shiny Live Extension: https://shiny.io/extensions
  • Cordo Extension Documentation: https://cordo.io/extension/shiny-live

[Applause] Thank you for your attention.

About the Author

About the Channel:

Share the Post:
en_GBEN_GB