Today, we have news about Shrine. Shrine is a toolkit that allows for easier handling of file uploads in Ruby applications, developed by Janko Marohnić. With regard to why he created Shrine, Janko has the following to say:

Because I wasn’t satisfied with current Ruby libraries for handling file attachments, I created Shrine. Its goal was to give you complete control over the whole attachment process, while still keeping convenience. It comes with many advanced features out-of-the-box, most notable being the ability to build a fully asynchronous user experience using direct uploads and background jobs.

A photo of a traditional Japanese shrine.

It was already possible to use Transloadit with Ruby, thanks to our Ruby and Rails SDKs, but Shrine makes things even less complex, while adding flexibility and many features.

Other features of Shrine include:

  • Proper logging support, which aids debugging and performance monitoring
  • Easy metadata extraction and saving
  • Extensive documentation and guides

Recently, Janko approached us with a proposal to add integration for Transloadit to the Shrine Ruby library. While looking for solutions to add resumable uploading to Shrine, he came across tus, through which he found Transloadit. Seeing as we are always trying our best to make dealing with files as easy as possible, we felt that Transloadit was a natural fit for Shrine. With that in mind, we gave Janko the go-ahead.

Now, after a few weeks of work, shrine-transloadit is finished and ready for use:

Thanks to shrine-transloadit, with just a few lines of code we were able to delegate processing to an external service, and have our database records automatically updated with the processed files. Transloadit has a rich arsenal of processors (“robots”), so we still have incredible flexibility in how we want to do our processing, but without the hassle of having to scale it.”

You can read Janko’s full blog post on creating shrine-transloadit here.

Transloadit integrations for every platform imaginable

Even though our REST API can be integrated with any platform, our dream is to provide SDKs and higher level libraries like Shrine for all platforms. Shrine included, we are currently offering kits for 13 different platforms. That said, we don’t, for instance, have a Java SDK yet and our mobile SDKs are not at the level where we would like them to be. We will hopefully have time to brush those up soon. Our jQuery SDK also leaves some to be desired in the modern web, which is the reason why we are currently developing Uppy.

In any case, we are very happy with this new Shrine integration for Ruby. Even though we already supported Ruby, Shrine offers a lot more required boilerplate. Ruby folks will, therefore, now need to do less work, and we will be even better equipped to alleviate the pains of dealing with file processing.