cannam@133: --- cannam@133: layout: post cannam@133: title: Cap'n Proto Beta Release cannam@133: author: kentonv cannam@133: --- cannam@133: cannam@133: It's been nearly three months since Cap'n Proto was originally announced, and by now you're cannam@133: probably wondering what I've been up to. The answer is basically cannam@133: [non-stop coding](https://github.com/kentonv/capnproto/commits/master). Features were implemented, cannam@133: code was refactored, tests were written, and now Cap'n Proto is beginning to resemble something cannam@133: like a real product. But as is so often the case with me, I've been so engrossed in coding that I cannam@133: forgot to post updates! cannam@133: cannam@133: Well, that changes today, with the first official release of Cap'n Proto, v0.1. While not yet cannam@133: "done", this release should be usable for Real Work. Feature-wise, for C++, the library is roughly cannam@133: on par with [Google's Protocol Buffers](http://protobuf.googlecode.com) (which, as you know, I used cannam@133: to maintain). Features include: cannam@133: cannam@133: * Types: numbers, bytes, text, enums, lists, structs, and unions. cannam@133: * Code generation from schema definition files. cannam@133: * Reading from and writing to file descriptors (or other streams). cannam@133: * Text-format output (e.g. for debugging). cannam@133: * Reflection, for writing generic code that dynamically walks over message contents. cannam@133: * Dynamic schema loading (to manipulate types not known at compile time). cannam@133: * Code generator plugins for extending the compiler to support new languages. cannam@133: * Tested on Linux and Mac OSX with GCC and Clang. cannam@133: cannam@133: Notably missing from this list is RPC (something Protocol Buffers never provided either). The RPC cannam@133: system is still in the design phase, but will be implemented over the coming weeks. cannam@133: cannam@133: Also missing is support for languages other than C++. However, I'm happy to report that a number cannam@133: of awesome contributors have stepped up and are working on cannam@133: [implementations in C, Go, Python]({{ site.baseurl }}otherlang.html), and a few others not yet cannam@133: announced. None of these are "ready" just yet, but watch this space. (Would you like to work on cannam@133: an implementation in your favorite language? cannam@133: [Let us know!](https://groups.google.com/group/capnproto)) cannam@133: cannam@133: Going forward, Cap'n Proto releases will occur more frequently, perhaps every 2-4 weeks. cannam@133: Consider [signing up for release announcements](https://groups.google.com/group/capnproto-announce). cannam@133: cannam@133: In any case, go [download the release]({{ site.baseurl }}install.html) and cannam@133: [tell us your thoughts](https://groups.google.com/group/capnproto).