Copyright (c) 2012–2014 The Readium Foundation and contributors.
Version 0.14 includes support for building a shared or static library for Android devices using the Android NDK r8e. See the Platform Support section for more information.
The Readium SDK is an ePub reader SDK of similar scope and capability to Adobe's Reader Mobile SDK (RMSDK). As such, it is designed to implement an ePub3- compliant Reading System, although its initial form will concentrate solely on the core ePub3 specification and fixed-layout metadata, expanding later to cover associated standards such as Page Templates.
The project's aim is to develop a productized, high-performance, cross-platform rendering engine for EPUB 3 content, optimized for use in native applications (mobile/tablet and secondarily desktop systems). Simplistic test applications for Android, iOS, OS X and Windows are part of the SDK, along with unit tests. The SDK is designed to be extensible in various areas, including in support for pluggable encryption and digital signature modules which might be used to implement a form of DRM.
Licensing information can be found in the file license.txt in the root of the repo, as well as in the source code itself.
At present, the project compiles for OS X and iOS using the version of Clang in Xcode 4.6
and the LLVM C++ standard library,
On Android, the project is build using GCC 4.7 and release 8e of the Android NDK. See Platform/Android/README.markdown for more information.
Build support for Windows using Visual Studio 2012 is due in release 0.5.
Headers And Libraries
The SDK is built into a single library on all platforms. Headers are placed into an
include folder by the build process for each platform, located within the appropriate
Platform subfolder. For instance, OS X and iOS headers are within
Platform/Apple/include, Windows headers are within
This folder is designed to be passed directly to the compiler using the
-I argument or similar.
The SDK consists of three major components, corresponding roughly to Model, View, and Controller. The majority of the ePub3 data handling takes place inside the Model component, which provides parsing and generation of ePub-related data structures. The View component is a browser engine; this engine may be a customized form of WebKit developed as part of this project, but any CSS3-compliant browser engine may be used. The Controller component is a small interface between the data and renderer components; this part is ultimately what Reading System vendors will extend to create their own reading system.
The Readium SDK is designed to potentially work with multiple browser engines but the #1 priority for initial development is WebKit, including platform-bundled instantiations (e.g. via UIWebView on iOS). #2 priority browser engine will be Trident/IE10 (needed for apps to be able to support screen readers on Windows).