{"id":13668267,"url":"https://github.com/readium/swift-toolkit","last_synced_at":"2025-05-15T13:07:06.111Z","repository":{"id":37090440,"uuid":"423789305","full_name":"readium/swift-toolkit","owner":"readium","description":"A toolkit for ebooks, audiobooks and comics written in Swift","archived":false,"fork":false,"pushed_at":"2025-05-07T15:35:03.000Z","size":15962,"stargazers_count":330,"open_issues_count":45,"forks_count":148,"subscribers_count":10,"default_branch":"develop","last_synced_at":"2025-05-07T16:47:44.319Z","etag":null,"topics":["audiobook","audiobook-player","cbz","ebook-reader","epub","ios","opds","opds-parser","pdf","pdf-viewer","reader","readium-lcp","swift"],"latest_commit_sha":null,"homepage":"https://readium.org/mobile/","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/readium.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"Support/Carthage/.xcodegen","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-11-02T09:57:12.000Z","updated_at":"2025-05-06T12:25:46.000Z","dependencies_parsed_at":"2024-01-30T13:44:42.252Z","dependency_job_id":"217c3455-7eff-4310-8bfb-604072cf5b22","html_url":"https://github.com/readium/swift-toolkit","commit_stats":{"total_commits":2467,"total_committers":51,"mean_commits":"48.372549019607845","dds":0.72111876773409,"last_synced_commit":"6c58ef40cda13f6298d3c95605f9000405f117a1"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/readium%2Fswift-toolkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/readium%2Fswift-toolkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/readium%2Fswift-toolkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/readium%2Fswift-toolkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/readium","download_url":"https://codeload.github.com/readium/swift-toolkit/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254346624,"owners_count":22055808,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audiobook","audiobook-player","cbz","ebook-reader","epub","ios","opds","opds-parser","pdf","pdf-viewer","reader","readium-lcp","swift"],"created_at":"2024-08-02T08:00:28.491Z","updated_at":"2025-05-15T13:07:01.098Z","avatar_url":"https://github.com/readium.png","language":"Swift","readme":"# Readium Swift Toolkit\n\n[Readium Mobile](https://github.com/readium/mobile) is a toolkit for ebooks, audiobooks and comics written in Swift \u0026 Kotlin.\n\n\u003e [!TIP]\n\u003e **Take a look at the [guide to get started](docs/Guides/Getting%20Started.md).** A [Test App](TestApp) demonstrates how to integrate the Readium Swift toolkit in your own reading app.\n\nThis toolkit is a modular project, which follows the [Readium Architecture](https://github.com/readium/architecture).\n\n* [`ReadiumShared`](Sources/Shared) – Shared `Publication` models and utilities\n* [`ReadiumStreamer`](Sources/Streamer) – Publication parsers and local HTTP server\n* [`ReadiumNavigator`](Sources/Navigator) – Plain `UIViewController` classes rendering publications\n* [`ReadiumOPDS`](Sources/OPDS) – Parsers for OPDS catalog feeds\n* [`ReadiumLCP`](Sources/LCP) – Service and models for [Readium LCP](https://www.edrlab.org/readium-lcp/)\n\n## Minimum Requirements\n\n\u003c!-- https://swiftversion.net/ --\u003e\n\n| Readium   | iOS  | Swift compiler | Xcode |\n|-----------|------|----------------|-------|\n| `develop` | 13.4 | 5.10           | 15.4  |\n| 3.0.0     | 13.4 | 5.10           | 15.4  |\n| 2.5.1     | 11.0 | 5.6.1          | 13.4  |\n| 2.5.0     | 10.0 | 5.6.1          | 13.4  |\n| 2.4.0     | 10.0 | 5.3.2          | 12.4  |\n\n## Using Readium\n\n\u003c!--:question: **Find documentation and API reference at [readium.org/kotlin-toolkit](https://readium.org/swift-toolkit)**.--\u003e\n\nReadium libraries are distributed with [Swift Package Manager](#swift-package-manager) (recommended), [Carthage](#carthage) and [CocoaPods](#cocoapods). It's also possible to clone the repository (or a fork) and [depend on the libraries locally](#local-git-clone).\n\nThe [Test App](TestApp) contains examples on how to use all these dependency managers.\n\n### Swift Package Manager\n\nFrom Xcode, open **File** \u003e **Add Packages** and use Readium's GitHub repository for the package URL: `https://github.com/readium/swift-toolkit.git`.\n\nYou are then free to add one or more Readium libraries to your application. They are designed to work independently.\n\nIf you're stuck, find more information at [developer.apple.com](https://developer.apple.com/documentation/swift_packages/adding_package_dependencies_to_your_app).\n\n### Carthage\n\nAdd the following to your `Cartfile`:\n\n```\ngithub \"readium/swift-toolkit\" ~\u003e 3.2.0\n```\n\nThen, [follow the usual Carthage steps](https://github.com/Carthage/Carthage#adding-frameworks-to-an-application) to add the Readium libraries to your project.\n\nNote 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.\n\nRefer to the following table to know which dependencies are required for each Readium library.\n\n|                        |   `ReadiumShared`  |  `ReadiumStreamer` | `ReadiumNavigator` |    `ReadiumOPDS`   |    `ReadiumLCP`    | `ReadiumAdapterGCDWebServer` | `ReadiumAdapterLCPSQLite` |\n|------------------------|:------------------:|:------------------:|:------------------:|:------------------:|:------------------:|------------------------------|---------------------------|\n| **`ReadiumShared`**    |                    | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark:           | :heavy_check_mark:        |\n| **`ReadiumInternal`**  | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |                              |                           |\n| `CryptoSwift`          |                    | :heavy_check_mark: |                    |                    | :heavy_check_mark: |                              |                           |\n| `DifferenceKit`        |                    |                    | :heavy_check_mark: |                    |                    |                              |                           |\n| `ReadiumFuzi`          | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |                              |                           |\n| `ReadiumGCDWebServer`  |                    |                    |                    |                    |                    | :heavy_check_mark:           |                           |\n| `ReadiumZIPFoundation` | :heavy_check_mark: |                    |                    |                    | :heavy_check_mark: |                              |                           |\n| `Minizip`              | :heavy_check_mark: |                    |                    |                    |                    |                              |                           |\n| `SQLite.swift`         |                    |                    |                    |                    |                    |                              | :heavy_check_mark:        |\n| `SwiftSoup`            | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |                              |                           |\n\n### CocoaPods\n\nAdd the following `pod` statements to your `Podfile` for the Readium libraries you want to use:\n\n```\nsource 'https://github.com/readium/podspecs'\nsource 'https://cdn.cocoapods.org/'\n\npod 'ReadiumShared', '~\u003e 3.2.0'\npod 'ReadiumStreamer', '~\u003e 3.2.0'\npod 'ReadiumNavigator', '~\u003e 3.2.0'\npod 'ReadiumOPDS', '~\u003e 3.2.0'\npod 'ReadiumLCP', '~\u003e 3.2.0'\n```\n\nTake a look at [CocoaPods's documentation](https://guides.cocoapods.org/using/using-cocoapods.html) for more information.\n\n### Local Git Clone\n\nYou may prefer to use a local Git clone if you want to contribute to Readium, or if you are using your own fork.\n\nFirst, add the repository as a Git submodule of your app repository, then checkout the desired branch or tag:\n\n```sh\ngit submodule add https://github.com/readium/swift-toolkit.git\n```\n\nNext, drag and drop the whole `swift-toolkit` folder into your project to import Readium as a Swift Package.\n\nFinally, add the Readium libraries you want to use to your app target from the **General** tab, section **Frameworks, Libraries, and Embedded Content**.\n\n### Building with Readium LCP\n\nUsing the toolkit with Readium LCP requires additional dependencies, including the framework `R2LCPClient.framework` provided by EDRLab. [Contact EDRLab](mailto:contact@edrlab.org) to request your private `R2LCPClient.framework` and the setup instructions.\n\n## Credits\n\nThis project is tested with BrowserStack.\n","funding_links":[],"categories":["Swift","Parsers \u0026 Toolkits","Toolkits"],"sub_categories":["Swift"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freadium%2Fswift-toolkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freadium%2Fswift-toolkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freadium%2Fswift-toolkit/lists"}