Announcing the open source release of the STREST Protocol, Server and Drivers.
STREST makes it as simple as possible for developers to create scalable streaming Firehoses and high throughput APIs.
While working on the forthcoming Trendrr.com API we began searching for a technology to address a number of semi-unique technical challenges. First we needed to be able to offer API calls that could handle extremely high volume with low latency while still maintaining the easy to use RESTful/HTTP interface.
Next we had to be able to deliver streaming realtime results at scale. For instance, if user X wants all results for one of their Trendrr projects, then we wanted to provide a simple streaming endpoint. One common approach to addressing this is to use http streams. This works well for certain use cases but we found it a bit limiting due to the fact that once the stream is established, no further communication can come from the client. STREST doesn’t have this limitation which makes it much more flexible when it comes to tailoring your stream results on the fly. Additionally, STREST is asynchronous so a client to connect to multiple streams simultaneously on a single connection.
Lastly we wanted a way to easily stream results to a browser.
To solve these issues we developed a new protocol called STREST which is compatible with HTTP and allows fully duplexed streaming connections. Our STREST server implementation supports websockets out of the box, and we provide a javascript websocket driver as well as a number of examples.
We are big supporters of opensource software and we are proud to announce the open source releases of the protocol spec, a high quality server implementation and drivers in Java, Python, and Javascript. We think you’ll be amazed at how easy it is to understand and how natural it is to develop APIs with STREST.
Dustin Norlander, Chief Architect of Wiredset/Trendrr