• Stars
    star
    260
  • Rank 157,189 (Top 4 %)
  • Language
    Swift
  • License
    BSD 3-Clause "New...
  • Created about 3 years ago
  • Updated 17 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A toolkit for ebooks, audiobooks and comics written in Swift

Readium Swift Toolkit

Readium Mobile is a toolkit for ebooks, audiobooks and comics written in Swift & Kotlin.

This toolkit is a modular project, which follows the Readium Architecture.

A Test App demonstrates how to integrate the Readium Swift toolkit in your own reading app

Minimum Requirements

Readium iOS Swift compiler Xcode
develop 11.0 5.6.1 13.4
2.5.1 11.0 5.6.1 13.4
2.5.0 10.0 5.6.1 13.4
2.4.0 10.0 5.3.2 12.4

Using Readium

Readium libraries are distributed with Swift Package Manager (recommended), Carthage and CocoaPods. It's also possible to clone the repository (or a fork) and depend on the libraries locally.

The Test App contains examples on how to use all these dependency managers.

Swift Package Manager

From Xcode, open File > Add Packages and use Readium's GitHub repository for the package URL: https://github.com/readium/swift-toolkit.git.

You are then free to add one or more Readium libraries to your application. They are designed to work independently.

If you're stuck, find more information at developer.apple.com.

Carthage

Add the following to your Cartfile:

github "readium/swift-toolkit" ~> 2.5.1

Then, follow the usual Carthage steps to add the Readium libraries to your project.

Note that Carthage will build all Readium modules and their dependencies, but you are free to add only the ones you are actually using. The Readium libraries are designed to work independently.

Refer to the following table to know which dependencies are required for each Readium library.

R2Shared R2Streamer R2Navigator ReadiumOPDS ReadiumLCP
R2Shared ✔️ ✔️ ✔️ ✔️
ReadiumInternal ✔️ ✔️ ✔️ ✔️ ✔️
CryptoSwift ✔️ ✔️
DifferenceKit ✔️
Fuzi ✔️ ✔️ ✔️ ✔️ ✔️
GCDWebServer ✔️
Minizip ✔️ ✔️ ✔️ ✔️ ✔️
SQLite.swift ✔️
SwiftSoup ✔️ ✔️ ✔️ ✔️ ✔️
ZIPFoundation ✔️

CocoaPods

Add the following pod statements to your Podfile for the Readium libraries you want to use:

pod 'R2Shared', podspec: 'https://raw.githubusercontent.com/readium/swift-toolkit/2.5.1/Support/CocoaPods/ReadiumShared.podspec'
pod 'R2Streamer', podspec: 'https://raw.githubusercontent.com/readium/swift-toolkit/2.5.1/Support/CocoaPods/ReadiumStreamer.podspec'
pod 'R2Navigator', podspec: 'https://raw.githubusercontent.com/readium/swift-toolkit/2.5.1/Support/CocoaPods/ReadiumNavigator.podspec'
pod 'ReadiumOPDS', podspec: 'https://raw.githubusercontent.com/readium/swift-toolkit/2.5.1/Support/CocoaPods/ReadiumOPDS.podspec'
pod 'ReadiumLCP', podspec: 'https://raw.githubusercontent.com/readium/swift-toolkit/2.5.1/Support/CocoaPods/ReadiumLCP.podspec'
pod 'ReadiumInternal', podspec: 'https://raw.githubusercontent.com/readium/swift-toolkit/2.5.1/Support/CocoaPods/ReadiumInternal.podspec'

# Required if you use R2Streamer.
pod 'GCDWebServer', podspec: 'https://raw.githubusercontent.com/readium/GCDWebServer/3.7.4/GCDWebServer.podspec'

Take a look at CocoaPods's documentation for more information.

Local Git Clone

You may prefer to use a local Git clone if you want to contribute to Readium, or if you are using your own fork.

First, add the repository as a Git submodule of your app repository, then checkout the desired branch or tag:

git submodule add https://github.com/readium/swift-toolkit.git

Next, drag and drop the whole swift-toolkit folder into your project to import Readium as a Swift Package.

Finally, add the Readium libraries you want to use to your app target from the General tab, section Frameworks, Libraries, and Embedded Content.

Building with Readium LCP

Using the toolkit with Readium LCP requires additional dependencies, including the framework R2LCPClient.framework provided by EDRLab. Contact EDRLab to request your private R2LCPClient.framework and the setup instructions.

More Repositories

1

readium-js-viewer

👁 ReadiumJS viewer: default web app for Readium.js library
HTML
517
star
2

readium-sdk

A C++ ePub renderer SDK
C
372
star
3

readium-js

EPUB processing engine written in Javascript
JavaScript
339
star
4

kotlin-toolkit

A toolkit for ebooks, audiobooks and comics written in Kotlin
Kotlin
185
star
5

awesome-readium

⭐️ Awesome Readium-related resources
172
star
6

architecture

📚 Documents the architecture of the Readium project
JavaScript
153
star
7

r2-testapp-swift

Swift
149
star
8

r2-testapp-kotlin

Kotlin
128
star
9

mobile

📱 Readium Mobile is a toolkit for ebooks, audiobooks and comics written in Swift & Kotlin.
HTML
104
star
10

readium-css

🌈 A set of reference stylesheets for EPUB Reading Systems, starting with Readium Mobile
HTML
87
star
11

readium-shared-js

Repository for the shared JavaScript libraries that are used in the SDK-Launchers and other applications developed on top of the SDK
JavaScript
78
star
12

SDKLauncher-Android

Launcher app for Readium SDK on Android
JavaScript
76
star
13

webpub-manifest

📜 A JSON based Web Publication Manifest format used at the core of the Readium project
HTML
72
star
14

SDKLauncher-iOS

A small iOS application to serve as a launcher/testbed for the Readium SDK.
JavaScript
70
star
15

readium-lcp-server

Repository for the Readium LCP Server
Go
61
star
16

ts-toolkit

A toolkit for ebooks, audiobooks and comics written in Typescript
TypeScript
59
star
17

readium-cfi-js

JavaScript
43
star
18

go-toolkit

A toolkit for ebooks, audiobooks and comics written in Go
Go
38
star
19

desktop

Readium Desktop is an SDK for ebooks, audiobooks and comics written in Typescript and using node.js and Electron.js.
23
star
20

r2-streamer-swift

Swift
22
star
21

SDKLauncher-OSX

A small OS X application to serve as a launcher/testbed for the Readium SDK on the Mac.
JavaScript
21
star
22

r2-navigator-swift

JavaScript
19
star
23

r2-streamer-kotlin

Kotlin
18
star
24

r2-streamer-js

NodeJS Readium2 "streamer"
JavaScript
15
star
25

readium.github.io

Base repo for hosting the landing pages for the organization's web pages
HTML
14
star
26

r2-navigator-kotlin

Kotlin
12
star
27

readium-lcp-client

This repository is for the Readium Licenced Content Protection (LCP) client side implementation work.
C++
11
star
28

r2-shared-swift

Swift
10
star
29

r2-navigator-web

A Readium Navigator module for Web applications, written in Typescript
TypeScript
8
star
30

r2-shared-kotlin

Kotlin
8
star
31

r2-testapp-js

NodeJS Readium2 "test app"
TypeScript
8
star
32

r2-shared-js

NodeJS Readium2 "shared" components
TypeScript
8
star
33

r2-workspace-kotlin

A workspace for on-boarding developers
8
star
34

r2-streamer-java

A Java implementation of the Readium-2 streamer
Java
8
star
35

lcp-specs

🔐 Releases, drafts and schema for Readium LCP
SCSS
7
star
36

r2-opds-swift

Swift
7
star
37

r2-opds-js

NodeJS Readium2 "opds" component
TypeScript
7
star
38

readium-test-files

Some ePub3 files used to demonstrate the capabilities of the Readium SDK and derived reading systems.
JavaScript
6
star
39

r2-navigator-js

NodeJS Readium2 "navigator"
TypeScript
6
star
40

r2-lcp-swift

Swift LCP module
Swift
5
star
41

r2-opds-kotlin

Kotlin
4
star
42

r2-glue-js

Javascript resources that are injected by a Readium-2 streamer or navigator
TypeScript
3
star
43

r2-lcp-kotlin

Kotlin
3
star
44

r2-lcp-js

NodeJS LCP Module
TypeScript
3
star
45

r2-utils-js

NodeJS Readium2 "utils"
TypeScript
2
star
46

r2-workspace-swift

A workspace for on-boarding developers
2
star
47

readium-planning

A repo for various planning documents (as opposed to code/architecture documents)
1
star
48

readium-interfaces

A set of interfaces that provide access to the functionality in Readium 1 and 2.
JavaScript
1
star
49

divina-player-js

JS Player for Digital Visual Narratives
JavaScript
1
star
50

guided-navigation

🪧 Guiding readers through a publication using a JSON based document
HTML
1
star