Lately I've been contemplating the thought of a universal serviceable online API. I wonder if we're ever going to see it...

It all started when I first got introduced to while playing around with some tests. I wanted to access my localhost without changing etc/hosts and they can resolve a DNS from the url you provi...well, that's not important.

The bit that stuck with me is that can provide a rather unique (unless I'm mistaken?) service by simply parsing your link. A certain form of responsive web that I hadn't really thought about until that point.

Afterwards, my thoughts migrated to Image resizing APIs and I was surprised to learn there are several services available for this purpose. ImageResizer's GIF basically unblurred the idea in my mind, with the addition of serving other parameters such as a public an accessible URL and the type of the file it would be messing around with.

I'll be the first to say I would never use this for larger than life files. During my internship I had to deal with GBs & GBs of accounting XML files and it would take forever processing those with Ruby & Nokogiri (a lot less with Java & Hadoop). However, assets served to a website are, in most cases, already optimized versions of these raw behemoths.

And who's to say that this same service (or a modified version of it) couldn't provide you with a simpler, less quality, scaled down version of an image, or perhaps an optimized compressed version of an XML, something that could take advantage of EXI perhaps?

Performance wise, this could prove to be extremely difficult since a greater number of network requests + a whole lot of looooong background jobs (Sidekiq anyone?) + heavy-processing tasks are all good turndowns for such an hypothesis. Nevertheless, we are moving towards an all online environment so I can't predict that we won't see something like this surface eventually.

In conclusion, just like provides DNS, what about a generalistic API for image processing, text processing, xml compressing, etc? Am I crazy? Am I late & is there anything like that already? If there is, is it open sourced?