Reigniting the fire: A roadmap for fiery

[This article was first published on Data Imaginist - R posts, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Last summer, just prior to starting as an intern working for Hadley, I published
fiery, a flexible webserver framework
that I had worked on during the spring. The reason why I developed fiery amids
offerings such as shiny, opencpu, and plumbr was that I was missing a
back-to-basic server framework with low overhead and freedom to program your
server logic in the way you wanted. For all of their accomplishments I felt that
the other frameworks had different goals.


fiery has always been intended to be modular, with support for adding plugins
in order to augment functionality, but since publishing fiery I’ve
unfortunately been distracted by other projects (mainly ggforce, ggraph,
tidygraph, and particles). During all this my bad conciusness about the
fiery standstill has nagged my though, and for several different reasons I’ve
decided that now is the time to restart development of this ecosystem. This post
is as much a help and incentiviser for me as it is an overview of my plans for
prospective users.


The first piece of the puzzle to work on is my
routr package which was intented to be
released rather shortly after fiery itself but fell down the priority list as
my visualisation packages gained traction. While the main functionality of the
package is there, it’s rough around the edges and is in general need of a full
code review and update. Once routr is completed the whole act of writing
server logic in fiery will be much more streamlined and easy.

A Deployment scheme for fiery apps

fiery is both intended for local running apps in the same vien as htmlwidgets
etc., for powering webapp server logic, and for services deployed to production
environment. For the two latter there has yet to come a streamlined deployment
scheme and this is of course a prerequisit for usage. My current plans, which
will be developed under the firestorm mantle, is to set up infrastructure for
easily deploying fiery apps as docker images and leveraging as much as
possible from the docker ecosystem in terms of setting up load balancing and
service discovery. Optimally all of this should be doable from within R and
without fiddling with dockerfiles and other configurations.

Making (some) security easy

The internet is a wild place and you shouldn’t expose a sevice without at least
some security measures. While not all of these shld be implemented at the
fiery layer, those that do should be as easy and obvious as possble. The
firesafety plugin package will attempt to collect all the best practices for
secury http(s) and websocket communication with the big wide world

Taking caree of your data

Whether you’re building a stateful app where session should be managed, or a
REST api, data needs to go somewhere. The firesale plugin package will be the
home of a fiery-centric datastore implementation, with support for sessions and
the likes.

Demos for the demo god

No web framework is complete without example apps, hopefully along with
easy-to-read guides on how to build them. I hope to be able to provide this as
well down the line, though focus is of course on providing good R documentation.

Wrapping up

That was a lot of words and promise without anything to really show for it. I’m
acutely aware of that. The above provides a very loose overview of what I intend
to do, but I’m in no position to provide a timeframe – you can read the list as
sort-of prioritised thus getting a sense of where my spare time will be spend

Here’s to hoping I don’t get derailed again ?

To leave a comment for the author, please follow the link and comment on their blog: Data Imaginist - R posts. offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)