Bringing TCP sockets to Heroku

Posted:   |   More posts about Heroku

I've been working on a new add-on, called Ruppell's Sockets, that will bring TCP sockets to Heroku and other PaaS providers.

Why TCP sockets? Heroku is a great tool. It makes deploying and running a web app so simple. I've run test apps on it, I ran the Surgeon Simulator ARG phone component on it. If your app wants HTTP (and recently, websockets), Heroku's got your back.

But what about TCP? What if your next big idea needs an IRC or Jabber server? What if you'd like to role your own TCP app? Heroku doesn't have your back.... yet.

Ruppell's Sockets routes a dedicated frontend TCP URI through a tunnel and onto your Heroku dyno, where your app can be listening for connections on a local TCP socket. The frontend TCP URI allocated to your app and the backend tunnel connections are distributed across a cluster of servers to keep everything scalable and reliable, just like your app on Heroku.

Ruppell's Sockets are currently in alpha on Heroku. If you're using Heroku and reading this, and you've got an idea that could do with some TCP sockets, send a mail to and I'll add you to the alpha group. Once you're in the alpha the Heroku Ruppell's Sockets documentation can get you started. Feel free to fork, update it with your experiences (so long as they're relevant for a wide audience) and send me a pull request.

Once I have feedback from Heroku and it's users I'll port the addon to other popular PaaS providers and offer a standalone version that can be used with any PaaS, so if you're interested drop me a mail or keep an eye on my blog.