Cross-platform Flutter application for searching, reading, downloading, and organizing books from Flibusta-compatible sources.
[!WARNING] This project is developed for educational and informational purposes only. The authors are not affiliated with, endorsed by, or connected to Flibusta or any of its mirrors. Use this software only in accordance with applicable copyright laws and regulations in your jurisdiction.
- Status
- Features
- Platforms
- Tech Stack
- Quick Start
- Developer Tooling
- Build Artifacts
- Project Layout
- Roadmap
- License
Glibusta is under active development. The repository already contains the application shell, navigation, search/parser work, local tooling, signing helpers, and release artifact targets. Some product features are still being implemented.
| Area | Status |
|---|---|
| Android app shell | In progress |
| macOS app shell | In progress |
| Search/parsing | In progress |
| Offline library | In progress |
| Reader | MVP/in progress |
| Downloads | In progress |
| Release automation | In progress |
- Search books across Flibusta-compatible mirrors.
- Parse book metadata and available formats from HTML fixtures/pages.
- Organize books in a local library.
- Download books in common formats such as FB2, EPUB, TXT, and ZIP.
- Read books in-app with reader settings and theming.
- Build signed Android artifacts and signed macOS release archives.
| Platform | Repository support | Notes |
|---|---|---|
| Android | ✅ | Primary mobile target. Signed APK/AAB build targets are available. |
| macOS | ✅ | Desktop target. Release zip target is available. |
| iOS | Planned | Platform directory is not currently present. |
| Linux | Planned | Platform directory is not currently present. |
| Windows | Planned | Platform directory is not currently present. |
| Web | Planned | Platform directory is not currently present. |
| Layer | Tooling |
|---|---|
| UI | Flutter, Material 3 |
| State management | Riverpod 3 |
| Navigation | Go Router |
| HTTP | Dio |
| Local storage | Drift SQLite |
| Parsing | package:html |
| Quality | flutter_lints, riverpod_lint, Ruff, ShellCheck, Prettier |
| Build automation | Makefile modules under makefiles/ |
make bootstrap-check
make bootstrap
make get
flutter runmake bootstrap first checks the local environment, then asks for yes or y before installing or
creating missing project-local tools.
[!TIP] Run
make helpto see every available target. The help output includes the current version frompubspec.yaml.
The Makefile is split into modules under makefiles/ and is the preferred entry point for local
workflows.
| Command | Purpose |
|---|---|
make help |
Show dynamic help with the current app version. |
make bootstrap-check |
Check required tools without changing the machine. |
make bootstrap |
Check tools, ask for confirmation, then install/setup supported missing pieces. |
make fix-all |
Run automatic formatters and safe fixes. |
make check-all |
Run formatting checks, linters, analyzer, and tests. |
make shellcheck |
Check shell scripts in scripts/. |
make ruff-check |
Lint Python scripts in scripts/. |
make prettier-check |
Check Markdown/YAML/JSON formatting. |
make fix-all
make check-allfix-all currently runs Flutter/Dart dependency setup, Node dependency setup, Dart formatting,
dart fix --apply, Prettier, Ruff formatting, and Ruff fixes.
check-all currently runs Dart format check, Prettier check, Ruff check, ShellCheck,
flutter analyze, and flutter test.
Release artifacts are copied into dist/releases/ with names based on the version in
pubspec.yaml.
| Command | Output |
|---|---|
make build-android-apk |
dist/releases/glibusta-<version>-android-release-signed.apk |
make build-android-aab |
dist/releases/glibusta-<version>-android-release-signed.aab |
make build-android |
APK and AAB |
make build-macos |
dist/releases/glibusta-<version>-macos-release.zip |
make build-all |
All currently available platform artifacts |
make artifacts |
List generated release artifacts |
Android release signing uses .key-generate.conf, scripts/signing.sh, and
android/key.properties.
macOS signing defaults to ad-hoc signing:
make build-macosTo use a Developer ID identity:
make build-macos MACOS_CODESIGN_IDENTITY="Developer ID Application: Example Name"lib/
app/ # Router and application shell
core/ # Database, HTTP, platform services, shared config
features/ # Feature-first modules
l10n/ # Localization ARB files
shared/ # Shared models and widgets
makefiles/ # Modular Makefile targets
scripts/ # Signing, icon generation, bootstrap, helper scripts
test/ # Unit and widget tests
Tracked locally in .rechange-docs.md.
- Stabilize
flutter analyzeandflutter test. - Finish Drift-backed offline library.
- Harden parser fixtures and mirror fallback.
- Complete reader MVP.
- Complete download queue controls and persistence.
- Add CI for
make check-all. - Expand platform support beyond Android and macOS.
Licensed under the Apache License 2.0.