Giter Site home page Giter Site logo

sorich87 / iridium Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mantano/iridium

0.0 1.0 0.0 137.68 MB

Unofficial Dart/Flutter port of some of the Readium 2 components

Shell 0.05% JavaScript 14.30% Ruby 0.27% C++ 1.65% C 0.04% Objective-C 0.01% Kotlin 0.03% Dart 64.44% CSS 0.42% Swift 0.10% HTML 17.96% CMake 0.74%

iridium's Introduction

Iridium is an open-source multiplatform e-reader Software Development Kit developed with Dart and Flutter by Mantano.

Iridium keeps the platform-specific code to the bare minimum (zero for now, in fact...). Hence, it does provide a really unified codebase. Until now, only the precompiled LCP DRM native library is specific to each platform, and is provided in binary form by Edrlab that simply must be dropped into the source tree.

Features

  • EPUB 2.x and 3.x support
  • Audiobook support
  • PDF support
  • Readium LCP support (not in demo app yet)
  • CBZ support (not in demo app yet)
  • Custom styles
  • Night & sepia modes
  • Pagination
  • Scrolling
  • Table of contents
  • OPDS 1.x and 2.0 support
  • FXL support
  • RTL support
  • Search in EPUB
  • Highlights/annotations
  • TTS
  • EPUB 3 Media Overlays
  • Divina support

Test it right now!

Pre-built versions

Pre-built versions of the Iridium Demo App are available:

Note: The Iridium Demo App is based on the excellent Jideguru's Flutter Ebook App.

Build it yourself

From the command-line

git clone https://github.com/Mantano/iridium.git
cd iridium/demo-app
flutter devices <-- Pick a device id in the list (in the 2nd column)
flutter run -d <device_id>

If you see the following error message:

Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain

apply the fix mentioned in this post.

From Android Studio or Intellij IDEA:

Supported platforms

Iridium is currently developed and tested on Android and iOS first, but large parts of the code should be reusable for desktop and web apps. Such desktop and web versions are not currently on the roadmap, but will be considered if we can collect external funding or aggregate external contributors.

Components

This SDK provides open-source unofficial Dart/Flutter ports of Readium 2 (R2) components1, following the Readium 2 architecture:

Name Usage
shared Shared Publication models and utilities
streamer Publication parsers
server Local HTTP server
navigator_flutter Navigator
opds Parsers for OPDS catalog feeds
commons Other misc. utilities (specific to this Flutter port, not found in Readium)
lcp Service and models for Readium LCP

Beyond these Readium 2 inspired modules, Iridium provides 2 conveniences:

Name Usage
iridium_reader_widget Plug and play reader widget
iridium_demo A demo app based on JideGuru's Flutter Ebook App

Integrating into your app

There are 3 main options, from simplest to most advanced

  • Option 1: Fork and tailor the Iridium Demo App
  • Option 2: Integrate the iridium_reader_widget into your app
  • Option 3: Integrate the Iridium modules the way you want. The iridium_reader_widget source code provides a lot of clues bout the relationships between the Iridium modules, and the workflows required to open and display a book.

Iridium vs Readium

Developed in the continuity of Readium 2, Iridium could pave the way to a "unified reference implementation" for Readium, with a unique codebase working across all platforms. However, Iridium is purely a Mantano initiative, and does not reflect any official Readium move towards Dart/Flutter development.

The Readium SDK is funded by public grants and membership fees. Iridium is completely funded and developed by Mantano, which is a private company. As a consequence:

  • You can support this work by becoming a sponsor;
  • One of the sponsorship tiers gives full access to Iridium's optimized "navigator" component.

Migrating an existing R2-based platform-specific app

Since the purpose is to allow full multiplatform development, these modules aim at being integrated into Dart/Flutter apps. Some of them could probably be integrated into existing apps.

However, packing multiple Flutter libraries into an application isn’t supported by Flutter for now. Integrating multiple modules could be achieved by developing some kind of "super-module", but this has not been tested.

Applications based on Iridium

OK... Let's face it, Iridium is brand new. So this list is currently reduced to Mantano's own forthcoming app, but good surprises are on the way ;-)

Why this name?

Iridium is named after the chemical element, which is known for being extremely corrosion-resistant: this reader will stand the test of time 😎


1: Readium is a trademark of the Readium Foundation)

iridium's People

Contributors

838 avatar ferraridamiano avatar imgbotapp avatar jaded0 avatar jideguru avatar jmgeffroy avatar kordonez avatar m-abs avatar parthpanchal123 avatar restyled-commits avatar sorich87 avatar tosif91 avatar yteitel avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.