@interface AQBlog : NSBlog @end

Tutorials, musings on programming and ePublishing

Introducing the Readium SDK


Something great begins today

Well, actually it started a few months ago. Or maybe a year ago.

Perhaps it started in February 2012, when the IDPF started an initiative to create an open source reference implementation of an EPUB® 3 reading system. This was given the name ‘Readium’, and it was implemented in JavaScript as a Chrome browser extension. A lot of companies were involved with this effort, although the primary architects were the folks at Evident Point in Vancouver, BC. Along the way, the folks at ACCESS began contributing some major changes into the WebKit browser to provide significantly better typography for Japanese text.

Or perhaps it began in October 2012, when during a visit to the Kobo offices Bill McCoy of the IDPF talked about an EPUB 3-compatible successor to Adobe's Reader Mobile SDK. As it happened, I'd been working on a cross-platform library for handling EPUB 3 files for a few months, off and on, and had written some Go and C++ source for handling a few nuances such as font obfuscation for other departments at Kobo. I'd been thinking long & hard about the architecture of just such a system, and we discussed it at length that day, and made a proposal to Kobo's management that we take a leadership role in this new project.

A few weeks later, everything was settled: the project I'd been working on in my spare moments at Kobo was to be the beginning of a new open-source SDK. In November the initial stakeholders (Kobo, IDPF, Evident Point, and Bluefire Productions of Seattle) had gone over some initial setup ideas, with the repository being created and my code checked in. In December we met at Bluefire's offices to go over the setup of what would later become the Readium Foundation, and in February, at Evident Point's offices in Vancouver, we worked out the final details. Shortly after that, we began soliciting new members with the aid of the IDPF, and now the list has grown quite considerably:

There are a few big names on there, and more to follow!

The project itself has been implemented using C++11, is released to the world under the GPL v3, and is designed to run on all available platforms. We're looking at JNI layers for the Android folks, and possibly something similar for Microsoft's CLR-based languages. As it stands, there's a lot of information available at the official site and at the Github repository. Contributions and membership in the foundation can get you a commercial-friendly license, or you can hack & fork it in a GPL-friendly manner to your hearts' content.

I'll be posting some more technical details on the project in multiple articles over the next couple of weeks, so you'll have some (persistent!) guidance if you'd like to get your feet wet.

Come on in, the water’s fine…