The past and future of WebSocket++

I have long been interested in writing and experimenting with web based virtual worlds. Some of my more recent projects in that area ran into communication limitations. In 2010 there was no good way to do low latency bidirectional communication to a browser without resorting to non-standard plugins. While researching my options I came across the IETF hybi working group that was chartered to develop exactly what I was looking for. As this is a capability I felt the web sorely needed a standard solution for I joined the group.

WebSocket++ was born as an early implimentation of the WebSocket protocol to test out ideas proposed by the working group and later on performance and interoperability tests. In the last two years there have been three major versions of WebSocket++. Versions tagged 0.1 were very rough experimental versions and not compatible with the final RFC6455 spec. It can be found in the 'legacy' branch on GitHub. Version 0.2 was built for performance and interoperability testing (alongside my work implimenting tests for the Autobahn suite). It can be found in the 'Master' branch on GitHub.

While it is a complete implimentation of RFC6455 a number of early design decisions made it impractical for certain use cases, especially those involving multithreading. In the year or so that version 0.2 has been available I have gathered a great deal of feedback about how developers are using C++ WebSocket libraries. I've continued to work with the hybi group on standardizing some extensions to the WebSocket protocol, in particular message compression. The completion of C++11 has also brought a number additional options that make sense to use. To address these issues and build a library more suitable for general purpose usage I have been working on a third (and hopefully final) version of the library, 0.3. If no major issues are raised, 0.3 will become the stable 1.0 release.

Subscribe to RSS - 0.3