Immersion language-learning suite: EPUB reader, video subtitle lookup, audiobook sync, and one-tap Anki mining. Android / Windows / macOS / iOS.
Dart
348
12,794 commits
updated Sep 23, 2026
English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Français | Deutsch | Português | Русский | Tiếng Việt | ภาษาไทย | Bahasa Indonesia | Italiano | Nederlands | Türkçe | العربية
Fushi is maintained by hajisensai. Contact: hajisensai@gmail.com.
| Platform | Status | Rendering / UI |
|---|---|---|
| Android | ✅ | Material Design 3 |
| Windows | ✅ | Material Design 3 |
| macOS | ✅ | Material Design 3 |
| Linux | 🔧 (build from source) | Material Design 3 |
| iOS | ✅ (TestFlight) | Material Design 3 |
Minimum Android 7.0 (API 24). Galgame voice mining is Windows-only. The languages available for dictionary lookup are determined by the imported dictionaries and Yomitan transformation tables, independently of the interface language. The iOS build is distributed through TestFlight: it omits the discovery and download features that the App Store guidelines do not allow, and its updates arrive a few days later than on the other platforms.
English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Español · Français · Deutsch · Português (Brasil) · Русский · Tiếng Việt · ภาษาไทย · Bahasa Indonesia · Italiano · Nederlands · Türkçe · العربية
Download the latest release from the Fushi website — Android APK, Windows installer, and macOS builds are available; iOS is installed through TestFlight. Linux has no prebuilt release yet; build it from source.
Requires Android 7.0 (API 24) or higher.
One-command prep (flutter pub get + apply patches), then build:
# From the repository root
bash tool/bootstrap.sh # Windows PowerShell: .\tool\bootstrap.ps1
cd fushi
# Android
flutter build apk --release --target-platform android-arm64 --split-per-abi
# Desktop
flutter build windows --release
flutter build macos --release
flutter build linux --release
# iOS
flutter build ipa --release
tool/bootstrap.sh / tool/bootstrap.ps1 collapse flutter pub get and ci/apply-patches.sh into a single command. This project is locked to Flutter 3.44.0 (Dart SDK >=3.5.0 <4.0.0); some upstream dependencies are vendored under third_party/ or patched by ci/apply-patches.sh — see docs/agent/build.md for details.
| Layer | Technology |
|---|---|
| Framework | Flutter 3.44.0 (Dart SDK >=3.5.0 <4.0.0) |
| Platforms | Android / Windows / macOS / iOS (Material Design 3) |
| Reader | WebView paging engine (derived from the Hoshi Reader family) |
| Video | media_kit (libmpv core) |
| Storage | Drift (SQLite, WAL) + fushidicts (C++ FFI dictionary engine) |
| NLP | Yomitan transformation tables (multilingual lemmatization) + kana_kit (kana conversion); tokenization via fushidicts FFI |
| Downloads | libtorrent 2.x via a C-ABI FFI bridge |
| Card Creation | AnkiDroid API + AnkiConnect |
| i18n | Slang (17 languages) |
Fushi/ # Repository root (Melos workspace: fushi_workspace)
├── fushi/ # Flutter app main directory
│ ├── lib/
│ │ ├── i18n/ # Internationalization (17 languages, Slang)
│ │ ├── src/
│ │ │ ├── pages/ # Pages (bookshelf, reader, dictionary, settings, etc.)
│ │ │ ├── reader/ # Reader WebView JS/CSS scripts
│ │ │ ├── media/ # Audiobook, subtitle parsing, reader source
│ │ │ └── models/ # Data models and state management (AppModel)
│ │ └── main.dart
│ └── android/ # Android project (manifest, native fushidicts)
├── packages/ # Internal packages + flutter_inappwebview_windows (fork) + gamepads_android_stub
├── native/ # C++ sources: fushidicts (dictionary engine), fushi_torrent, galgame_hook
├── third_party/ # Vendored patched packages (dependency_overrides)
├── ci/ # Build patches and integration test scripts
├── tool/ # bootstrap / i18n_sync and other scripts
└── docs/ # Development documentation (incl. docs/agent/ operations manual)
Video import supports grouping by work or folder. See the video workflow and MAL/TMDB metadata with AniDB file hashing for matching and background tasks.
Optional online service setup explains bundled application identities, personal credentials, and the dismissible video setup reminder.
Fushi stores imported books, dictionaries, fonts, audiobook data, videos, reading progress, highlights, statistics, and settings in the app's local storage.
Cloud sync (Google Drive / OneDrive / Dropbox) uses user-configured OAuth credentials; WebDAV / FTP / SFTP uses user-provided server addresses and credentials; Fushi Interconnect connects directly to a user-configured address on your own network. Anki card creation communicates with AnkiDroid or a configured AnkiConnect address.
Day-to-day work lands on develop; main only receives release merges. The chart is displayed here on main but is generated from develop, so it reflects actual development rather than merge traffic.
The three lanes are the update channels the app itself offers, and each is scaled to its own peak — debug builds outnumber stable releases by two orders of magnitude, so a shared scale would flatten the other two lanes to nothing.
| Lane | What it counts | How you get it |
|---|---|---|
| Debug (rolling) | Successful push builds of release.yml | Rolling prerelease, republished on every push |
| Beta | v<version>-beta.<seq> prereleases | Manually dispatched test build |
| Stable | v<version> releases | Latest release |
The chart above is generated inside this repository (no third-party service) and refreshed daily by the Update Dev Activity Chart workflow.
The chart above is generated inside this repository (no third-party service) and refreshed daily by the Update Star History workflow.
Fushi builds on the following projects and ecosystem:
| Project | Description |
|---|---|
| jidoujisho | Japanese immersive learning tool |
| Hoshi Reader | iOS Japanese reader; reader paging engine reference |
| Hoshi Reader Android | Android native Japanese reader |
| hoshidicts | C++ dictionary engine |
| Sasayaki | Audiobook sync solution |
| Yomitan | Dictionary format, transformation tables, and lookup experience reference |
| Lapis | Anki note type |
| AnkiDroid | Android card creation integration |
| Ankiconnect Android | Local audio and AnkiDroid interaction reference |
| ッツ Ebook Reader | Reader, statistics, and sync compatibility reference |
| media_kit | Flutter video playback framework (libmpv core) |
| Niratan | Immersion language learning suite for macOS |
| Project | Description |
|---|---|
| LunaHook | Galgame text hooking engine (vendored DLLs loaded by the injector) |
| MinHook | Inline hooking library used by the galgame injector |
| libtorrent | Built-in torrent download engine |
| mpv | libmpv playback core behind media_kit |
| FFmpeg | Media probing, clipping, and audio extraction |
| libplacebo | GPU video shaders and HDR tone mapping |
| flutter_inappwebview | WebView engine that renders the EPUB reader |
| ONNX Runtime | On-device inference for speech recognition and OCR |
| zstd · xxHash · libdeflate · glaze · unordered_dense · utf8proc · utfcpp | Dictionary engine dependencies |
| Project | Description |
|---|---|
| sherpa-onnx | Zipformer speech recognition model packages and VAD builds |
| ReazonSpeech k2-v2 | Japanese speech recognition model |
| Omnilingual ASR | Multilingual CTC speech recognition model |
| Silero VAD | Voice activity detection model |
| manga-ocr / manga-ocr-onnx | Manga OCR model |
| comic-text-and-bubble-detector | Manga text and speech bubble detection model |
| Project | Description |
|---|---|
| Mihon | Manga source extension ecosystem |
| M-Extension-Server | Manga extension runtime for desktop |
| aidoku-rs | Manga source runtime ABI |
| asbplayer | Streaming subtitle bridge reference for the browser extension |
| Shoko Server | Anime identification and scraping architecture reference |
| ReinaManager | Galgame library information architecture reference |
| AniDB | Anime, episode, and file identity |
| TMDB | Supplementary metadata and artwork |
| Jimaku | Japanese subtitle source |
| OpenSubtitles | Subtitle source |
This application uses TMDB and the TMDB APIs but is not endorsed, certified, or otherwise approved by TMDB.
Distributed under the GNU General Public License v3.0. See LICENSE for details.
Dart
67.4%
C++
14.5%
C
11.5%
JavaScript
3.0%
Immersion language-learning suite: EPUB reader, video subtitle lookup, audiobook sync, and one-tap Anki mining. Android / Windows / macOS / iOS.
Dart
348
12,794 commits
updated Sep 23, 2026
English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Français | Deutsch | Português | Русский | Tiếng Việt | ภาษาไทย | Bahasa Indonesia | Italiano | Nederlands | Türkçe | العربية
Fushi is maintained by hajisensai. Contact: hajisensai@gmail.com.
| Platform | Status | Rendering / UI |
|---|---|---|
| Android | ✅ | Material Design 3 |
| Windows | ✅ | Material Design 3 |
| macOS | ✅ | Material Design 3 |
| Linux | 🔧 (build from source) | Material Design 3 |
| iOS | ✅ (TestFlight) | Material Design 3 |
Minimum Android 7.0 (API 24). Galgame voice mining is Windows-only. The languages available for dictionary lookup are determined by the imported dictionaries and Yomitan transformation tables, independently of the interface language. The iOS build is distributed through TestFlight: it omits the discovery and download features that the App Store guidelines do not allow, and its updates arrive a few days later than on the other platforms.
English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Español · Français · Deutsch · Português (Brasil) · Русский · Tiếng Việt · ภาษาไทย · Bahasa Indonesia · Italiano · Nederlands · Türkçe · العربية
Download the latest release from the Fushi website — Android APK, Windows installer, and macOS builds are available; iOS is installed through TestFlight. Linux has no prebuilt release yet; build it from source.
Requires Android 7.0 (API 24) or higher.
One-command prep (flutter pub get + apply patches), then build:
# From the repository root
bash tool/bootstrap.sh # Windows PowerShell: .\tool\bootstrap.ps1
cd fushi
# Android
flutter build apk --release --target-platform android-arm64 --split-per-abi
# Desktop
flutter build windows --release
flutter build macos --release
flutter build linux --release
# iOS
flutter build ipa --release
tool/bootstrap.sh / tool/bootstrap.ps1 collapse flutter pub get and ci/apply-patches.sh into a single command. This project is locked to Flutter 3.44.0 (Dart SDK >=3.5.0 <4.0.0); some upstream dependencies are vendored under third_party/ or patched by ci/apply-patches.sh — see docs/agent/build.md for details.
| Layer | Technology |
|---|---|
| Framework | Flutter 3.44.0 (Dart SDK >=3.5.0 <4.0.0) |
| Platforms | Android / Windows / macOS / iOS (Material Design 3) |
| Reader | WebView paging engine (derived from the Hoshi Reader family) |
| Video | media_kit (libmpv core) |
| Storage | Drift (SQLite, WAL) + fushidicts (C++ FFI dictionary engine) |
| NLP | Yomitan transformation tables (multilingual lemmatization) + kana_kit (kana conversion); tokenization via fushidicts FFI |
| Downloads | libtorrent 2.x via a C-ABI FFI bridge |
| Card Creation | AnkiDroid API + AnkiConnect |
| i18n | Slang (17 languages) |
Fushi/ # Repository root (Melos workspace: fushi_workspace)
├── fushi/ # Flutter app main directory
│ ├── lib/
│ │ ├── i18n/ # Internationalization (17 languages, Slang)
│ │ ├── src/
│ │ │ ├── pages/ # Pages (bookshelf, reader, dictionary, settings, etc.)
│ │ │ ├── reader/ # Reader WebView JS/CSS scripts
│ │ │ ├── media/ # Audiobook, subtitle parsing, reader source
│ │ │ └── models/ # Data models and state management (AppModel)
│ │ └── main.dart
│ └── android/ # Android project (manifest, native fushidicts)
├── packages/ # Internal packages + flutter_inappwebview_windows (fork) + gamepads_android_stub
├── native/ # C++ sources: fushidicts (dictionary engine), fushi_torrent, galgame_hook
├── third_party/ # Vendored patched packages (dependency_overrides)
├── ci/ # Build patches and integration test scripts
├── tool/ # bootstrap / i18n_sync and other scripts
└── docs/ # Development documentation (incl. docs/agent/ operations manual)
Video import supports grouping by work or folder. See the video workflow and MAL/TMDB metadata with AniDB file hashing for matching and background tasks.
Optional online service setup explains bundled application identities, personal credentials, and the dismissible video setup reminder.
Fushi stores imported books, dictionaries, fonts, audiobook data, videos, reading progress, highlights, statistics, and settings in the app's local storage.
Cloud sync (Google Drive / OneDrive / Dropbox) uses user-configured OAuth credentials; WebDAV / FTP / SFTP uses user-provided server addresses and credentials; Fushi Interconnect connects directly to a user-configured address on your own network. Anki card creation communicates with AnkiDroid or a configured AnkiConnect address.
Day-to-day work lands on develop; main only receives release merges. The chart is displayed here on main but is generated from develop, so it reflects actual development rather than merge traffic.
The three lanes are the update channels the app itself offers, and each is scaled to its own peak — debug builds outnumber stable releases by two orders of magnitude, so a shared scale would flatten the other two lanes to nothing.
| Lane | What it counts | How you get it |
|---|---|---|
| Debug (rolling) | Successful push builds of release.yml | Rolling prerelease, republished on every push |
| Beta | v<version>-beta.<seq> prereleases | Manually dispatched test build |
| Stable | v<version> releases | Latest release |
The chart above is generated inside this repository (no third-party service) and refreshed daily by the Update Dev Activity Chart workflow.
The chart above is generated inside this repository (no third-party service) and refreshed daily by the Update Star History workflow.
Fushi builds on the following projects and ecosystem:
| Project | Description |
|---|---|
| jidoujisho | Japanese immersive learning tool |
| Hoshi Reader | iOS Japanese reader; reader paging engine reference |
| Hoshi Reader Android | Android native Japanese reader |
| hoshidicts | C++ dictionary engine |
| Sasayaki | Audiobook sync solution |
| Yomitan | Dictionary format, transformation tables, and lookup experience reference |
| Lapis | Anki note type |
| AnkiDroid | Android card creation integration |
| Ankiconnect Android | Local audio and AnkiDroid interaction reference |
| ッツ Ebook Reader | Reader, statistics, and sync compatibility reference |
| media_kit | Flutter video playback framework (libmpv core) |
| Niratan | Immersion language learning suite for macOS |
| Project | Description |
|---|---|
| LunaHook | Galgame text hooking engine (vendored DLLs loaded by the injector) |
| MinHook | Inline hooking library used by the galgame injector |
| libtorrent | Built-in torrent download engine |
| mpv | libmpv playback core behind media_kit |
| FFmpeg | Media probing, clipping, and audio extraction |
| libplacebo | GPU video shaders and HDR tone mapping |
| flutter_inappwebview | WebView engine that renders the EPUB reader |
| ONNX Runtime | On-device inference for speech recognition and OCR |
| zstd · xxHash · libdeflate · glaze · unordered_dense · utf8proc · utfcpp | Dictionary engine dependencies |
| Project | Description |
|---|---|
| sherpa-onnx | Zipformer speech recognition model packages and VAD builds |
| ReazonSpeech k2-v2 | Japanese speech recognition model |
| Omnilingual ASR | Multilingual CTC speech recognition model |
| Silero VAD | Voice activity detection model |
| manga-ocr / manga-ocr-onnx | Manga OCR model |
| comic-text-and-bubble-detector | Manga text and speech bubble detection model |
| Project | Description |
|---|---|
| Mihon | Manga source extension ecosystem |
| M-Extension-Server | Manga extension runtime for desktop |
| aidoku-rs | Manga source runtime ABI |
| asbplayer | Streaming subtitle bridge reference for the browser extension |
| Shoko Server | Anime identification and scraping architecture reference |
| ReinaManager | Galgame library information architecture reference |
| AniDB | Anime, episode, and file identity |
| TMDB | Supplementary metadata and artwork |
| Jimaku | Japanese subtitle source |
| OpenSubtitles | Subtitle source |
This application uses TMDB and the TMDB APIs but is not endorsed, certified, or otherwise approved by TMDB.
Distributed under the GNU General Public License v3.0. See LICENSE for details.
Dart
67.4%
C++
14.5%
C
11.5%
JavaScript
3.0%