Skip to content
This repository has been archived by the owner on Aug 12, 2022. It is now read-only.

Releases: readium/r2-shared-swift

2.2.0

01 Nov 17:18
4c561d8
Compare
Choose a tag to compare

Take a look at the migration guide

Added

  • Support for Paragraph Margins user setting.

Fixed

  • Improved performances of the search service used with EPUB.

2.1.0

29 Jul 12:35
f631efd
Compare
Choose a tag to compare

Take a look at the migration guide

Added

  • Support for Swift Package Manager (contributed by @stevenzeck).
  • (alpha) A new Publication SearchService to search through the resources' content with a default implementation StringSearchService.
  • Link objects from archive-based publication assets (e.g. an EPUB/ZIP) have additional properties for entry metadata.
    "properties" {
        "archive": {
            "entryLength": 8273,
            "isEntryCompressed": true
        }
    }
  • New UserProperties.removeProperty(forReference:) API to remove unwanted Readium CSS properties (contributed by @ettore).

2.0.1

28 May 14:43
41ed31a
Compare
Choose a tag to compare

Take a look at the migration guide

Fixed

  • #139 Compile error with Xcode 12.4

2.0.0

25 May 16:57
4d1735b
Compare
Choose a tag to compare

Take a look at the migration guide

Deprecated

  • All APIs deprecated in previous versions are now unavailable.
  • DownloadSession is deprecated and will be removed in the next major version. Please migrate to your own download solution.

2.0.0-beta.2

14 Apr 11:06
f6ce578
Compare
Choose a tag to compare
2.0.0-beta.2 Pre-release
Pre-release

Take a look at the migration guide

Added

  • PublicationServiceContext now holds a weak reference to the parent Publication. This can be used to access other services from a given PublicationService implementation.
  • The default LocatorService implementation can be used to get a Locator from a global progression in the publication.
    • publication.locate(progression: 0.5)

Changed

  • The Archive API now supports resource ownership at the entry level.
    • The default ZIP implementation takes advantage of this by opening a new ZIP stream for each resource to be served. This improves performances and memory safety.

Fixed

  • Improved performances when reading consecutive ranges of a deflated ZIP entry.
  • HREF normalization when a resource path contains special characters.

2.0.0-beta.1

23 Dec 14:34
981a460
Compare
Choose a tag to compare
2.0.0-beta.1 Pre-release
Pre-release

Take a look at the migration guide

Added

  • PublicationAsset is a new protocol which can be used to open a publication from various medium, such as a file, a remote URL or a custom source.
    • File was replaced by FileAsset, which implements PublicationAsset.

Changed

  • Format got merged into MediaType, to simplify the media type APIs.
    • You can use MediaType.of() to sniff the type of a file or bytes.
    • MediaType has now optional name and fileExtension properties.
    • Some publication formats can be represented by several media type aliases. Using mediaType.canonicalized will give you the canonical media type to use, for example when persisting the file type in a database. All Readium APIs are already returning canonical media types, so it only matters if you create a MediaType yourself from its string representation.
  • ContentLayout is deprecated, use publication.metadata.effectiveReadingProgression to determine the reading progression of a publication instead.

2.0.0-alpha.2

28 Oct 14:58
4ee1ebc
Compare
Choose a tag to compare
2.0.0-alpha.2 Pre-release
Pre-release

Take a look at the migration guide

Added

  • The Publication Services API allows to extend a Publication with custom implementations of known services. This version ships with a few predefined services:
    • PositionsService provides a list of discrete locations in the publication, no matter what the original format is.
    • CoverService provides an easy access to a bitmap version of the publication cover.
  • The Composite Fetcher API can be used to extend the way publication resources are accessed.
  • Support for exploded directories for any archive-based publication format.
  • Content Protection handles DRM and other format-specific protections in a more systematic way.
    • LCP now ships an LCPContentProtection implementation to be plugged into the Streamer.
    • You can add custom ContentProtection implementations to support other DRMs by providing an instance to the Streamer.
  • A new LinkRelation type to represent link relations, instead of using raw strings.
    • This will improve code safety through type checking and enable code completion.
    • Since LinkRelation conforms to ExpressibleByStringLiteral, you can continue using raw strings in the API. However, migrating your code is recommended, e.g. links.first(withRel: .cover).
    • Known link relations (including from OPDS specifications) are available under the LinkRelation namespace. You can easily add custom relations to the namespace by declaring static properties in a LinkRelation extension.

Changed

  • The Publication and Container types were merged together to offer a single interface to a publication's resources.
    • Use publication.get() to read the content of a resource, such as the cover. It will automatically be decrypted if a ContentProtection was attached to the Publication.

2.0.0-alpha.1

11 Aug 12:38
ef446a7
Compare
Choose a tag to compare
2.0.0-alpha.1 Pre-release
Pre-release

Added

Changed

  • All the Publication shared models are now immutable, to improve code safety. This should not impact reading apps unless you created Publication or other models yourself.
  • The DocumentTypes API was extended and offers an easy way to check if your app supports a given file.
  • Dependencies to format-related third-party libraries such as ZIP, XML and PDF are being consolidated into r2-shared-swift. Therefore, r2-shared-swift now depends on Fuzi and ZIPFoundation. This change will improve maintainability by isolating third-party code and allow (work in progress) to substitute the default libraries with custom ones.

1.4.3: Merge pull request #80 from readium/develop

13 Jan 18:35
0e571e0
Compare
Choose a tag to compare

1.4.2

19 Nov 13:53
93dc07e
Compare
Choose a tag to compare
Update .travis.yml