IReader-plugins is the official plugin development kit and repository for IReader, a cross-platform ebook/novel reader application. This project enables developers to extend IReader's functionality through a modular plugin system.
Traditional ebook readers are monolithic applications where adding new features requires modifying the core codebase. This creates several issues:
- Users can't customize their experience
- New features require app updates
- Third-party contributions are difficult
- Features bloat the main application
A plugin architecture that:
- Allows modular feature addition
- Enables community contributions
- Supports monetization for developers
- Keeps the core app lightweight
- Provides security through sandboxing
Change the visual appearance of IReader:
- Color schemes (light/dark/custom)
- Typography (fonts, sizes, spacing)
- Backgrounds and textures
- Accessibility themes (high contrast)
Add voice reading capabilities:
- Cloud TTS services (Google, Amazon, Azure)
- Local TTS engines
- Custom voice models
- Multi-language support
Enable reading in different languages:
- Real-time translation
- Offline translation
- Dictionary integration
- Language learning tools
Add custom functionality:
- Dictionary lookup
- Note-taking and annotations
- Reading statistics
- Social sharing
- Bookmarks with tags
- Custom gestures
Intelligent text processing:
- Chapter/book summarization
- Character analysis and tracking
- Q&A about book content
- Content recommendations
- Sentiment analysis
┌────────────────────────────────────────────────────────┐
│ IReader App │
│ ┌──────────────────────────────────────────────────┐ │
│ │ Plugin Manager │ │
│ │ • Loads plugins from .iplugin files │ │
│ │ • Manages lifecycle (enable/disable) │ │
│ │ • Enforces permissions and resource limits │ │
│ └──────────────────────────────────────────────────┘ │
│ │ │
│ Plugin API │
│ │ │
│ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │
│ │Theme │ │ TTS │ │Trans │ │Feat. │ │ AI │ │
│ │Plugin│ │Plugin│ │Plugin│ │Plugin│ │Plugin│ │
│ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ │
└────────────────────────────────────────────────────────┘
- Discovery: IReader scans for
.ipluginfiles - Loading: Plugin manifest is read and validated
- Registration: Plugin is added to registry
- Initialization:
initialize()called when enabled - Execution: Plugin methods called as needed
- Cleanup:
cleanup()called when disabled
Plugins run in a sandboxed environment:
- Permission System: Plugins declare required permissions
- Resource Limits: CPU, memory, and time limits enforced
- Network Proxy: All requests go through IReader's proxy
- File Isolation: Limited file system access
- Independent developers wanting to extend IReader
- Companies integrating their services (TTS, translation)
- Community members adding features they want
- Readers wanting to customize their experience
- Users needing specific features (accessibility, languages)
- Power users wanting advanced functionality
| Component | Purpose |
|---|---|
buildSrc/ |
Gradle plugin for building IReader plugins |
annotations/ |
KSP annotations for plugin metadata |
compiler/ |
KSP processor for compile-time validation |
plugins/ |
Example and community plugins |
docs/ |
Documentation |
| Repository | Purpose |
|---|---|
IReader |
Main application |
plugin-api |
Plugin interfaces (published as library) |
- Read the Developer Guide
- Check Quick Reference
- Look at example plugins in
plugins/ - Create your own plugin
- Submit to the community repository
- Browse available plugins in IReader's Plugin Hub
- Install plugins that interest you
- Report issues or request features
- Rate and review plugins
Developers can monetize their plugins:
| Model | Description |
|---|---|
| Free | No cost, great for building reputation |
| Premium | One-time purchase |
| Freemium | Basic free, advanced features paid |
| Subscription | Recurring payment (for services) |
IReader handles payment processing and license validation.
- ✅ Theme plugins
- ✅ TTS plugins
- ✅ Translation plugins
- ✅ Feature plugins
- ✅ AI plugins
- ✅ Plugin marketplace
- ✅ Monetization support
- 🔄 Plugin composition (chaining)
- 🔄 Cross-plugin communication
- 🔄 Plugin analytics dashboard
- 🔄 Hot reload for development
- 📋 Plugin widgets
- 📋 Plugin shortcuts
- Documentation: This
docs/folder- Plugin Creation Guide - Step-by-step tutorials
- Developer Guide - Comprehensive reference
- Quick Reference - Cheat sheet
- Issues: GitHub Issues
- Discord: IReader Community
- Email: plugins@ireader.org
This project is licensed under MPL 2.0. Plugins can use any compatible license.