Show HN: Calibre互換の電子書籍管理アプリ、Citadel
(github.com/every-day-things)- Citadelは、Calibreが読み取れる電子書籍ライブラリを維持しながら、より良いUXとより高速な体感を目指す電子書籍ライブラリ管理アプリ
- 中核目標は、Calibreとの後方互換性、使いやすく見栄えの良いインターフェース、Calibreよりはるかに高速で、決してそれより遅くならない性能
- 現時点では初期段階のソフトウェアのため、バグや機能不足が想定され、クラッシュしたり基本機能が欠けていたり、電子書籍ライブラリを破損させる可能性がある
- Citadelは電子書籍リーダーでも電子書籍コンテンツエディタでもなく、ファイルは既定のアプリで開き、タイトルのようなメタデータ管理に重点を置く
- 安定版ビルドはReleases、開発版ビルドはGitHub Actionsから入手でき、開発にはBunとRustが必要
Citadelが目指すもの
- Citadelは電子書籍ライブラリを管理するアプリで、Calibreとの後方互換性を中核前提としている
- Citadelが変更したライブラリはCalibreで読み取れる必要がある
- プロジェクトの目標は3つ
- Calibreとの後方互換性: Citadelが編集したライブラリをCalibreが読み取れること
- 優れたUX: 使いやすく、見た目も良いこと
- 性能: Calibreよりはるかに高速に感じられ、決してそれより遅くならないこと
目指していないこと
- Citadelは電子書籍リーダーではない
- すでに優れた電子書籍リーダーアプリがあり、Citadelはファイルをユーザーの既定アプリで開く
- Citadelは電子書籍コンテンツエディタではない
- タイトルのようなメタデータではなく、電子書籍本文コンテンツを編集する用途であれば代替にはならない
- Calibreとの100%の機能同等性は目標にしていない
- 主にプラグイン領域が該当する
- Calibreの一部高度機能は実装しない可能性がある
現在の状態とダウンロード
- Citadelは非常に初期の開発段階
- クラッシュすることがある
- 基本機能が欠けていることがある
- 電子書籍ライブラリを破損させる可能性がある
- CalibreライブラリでCitadelを使う場合は定期的なバックアップが必要
- 半ば安定したビルドはReleasesから入手できる
- 開発ビルドはGitHub Actionsから入手できる
- どのバージョンでも、使用中に発生した問題やクラッシュは報告してほしいとしている
macOSインストール時の注意
- macOSビルドはまだ署名されていない
Citadel.appを直接開くと、ファイルが“damaged”だという警告が表示される- ファイルのQuarantine属性を削除すれば解決する
- 関連案内: Removing the Quarantine attribute from the file
- 例のコマンド:
xattr -d com.apple.quarantine /Applications/Citadel.app/
開発とビルド
- 開発の前提条件はBunとRustのインストール
- パッケージのインストール:
bun install - 開発実行:
bun run dev # or just bun dev - Lintとフォーマットのコマンドは以下
- コード全体のフォーマット:
bun format - コード全体のフォーマット検査:
bun format:check - コード全体のLint:
bun lint - バックエンドのフォーマット:
bun format:backend - バックエンドのLint:
bun lint:backend - フロントエンドのフォーマット:
bun format:web - フロントエンドのLint:
bun lint:web
- コード全体のフォーマット:
- バックエンドなしでアプリのプレビューを実行できる
- Rustバックエンドはないが存在すると仮定するため、エラーが表示される
bun dev:app - 本番ビルドは、開発の前提条件を満たしたうえで次のコマンドで作成する
bun install bun run build
アップデートと関連プロジェクト
- Citadelはアプリのアップデートを確認し、要求時にインストールできる
- 自動アップデート確認はSettingsの
Auto updates: On/Offで無効化できる - インストールは常に明示的に行われ、UI文言は
Install and restart - メンテナー向け設定とリリースワークフローの詳細は
docs/updater-and-releases.mdにある - CitadelはCalibreをベンチマークとしており、Calibre redesign Figma prototypeから着想を得ている
1件のコメント
Hacker News のコメント
「Calibre Web のような既存プロジェクトに貢献せず、なぜ新しいアプリを作ったのか?」という質問が出るかもしれないが、答えは単に作りたかったから
今は趣味プロジェクトなので、既存プロジェクトを拡張するより、たとえ粗削りでも楽しくソフトウェアを作ることに関心がある。Citadel は Calibre と後方互換になるよう設計されているので、Calibre Web も引き続き使える
バックエンドも Calibre と接するコードを別ライブラリとして分離してあり、将来的には他のプロジェクトでも使えるようにしたい。Calibre ライブラリ CLI も可能そう
「多くの分野では、車輪を再発明するなという言葉がほとんど常識のように受け止められている。だが時には、それでもやってみることを勧めたい。その過程だけでも人はより良くなり、結局はより良い車輪もそうして生まれる。人々がただ試してみるからだ。」
https://www.youtube.com/watch?v=YOZnqjHkULc
Calibre は機能を知っていても使うのがかなり苦痛で、祖父母にも技術に詳しい人にも勧めにくい
それでもプロジェクトがうまくいくことを願っている
[0] https://www.cs.cmu.edu/~awb/linux.history.html
もっとオープンで現代的で、ホスティングライブラリを念頭に置いた堅実な競合があれば、すぐに乗り換えると思う
ときどき、Calibre の見た目がもう少し良ければ、人々はそのすごさに気づいただろうと思う。正直そこまで悪くはなく、個人的には好きだが、人々は外観を乗り越えられないようだ
何度もクラッシュし、処理があまりに遅かったので別のマシンに移した。Web インターフェースで検索してみたが、それも非常に遅かった
直感的でない UI は言うまでもない。ライブラリの役割を担うというわりには、実際の図書館式の著者の五十音順/アルファベット順リストにもはるかに及ばない
大半の人は10〜300冊程度だろうというのは理解しているが、私はいくつかの大規模ライブラリを Calibre で使おうとして、本当に耐えられなかった
SQLite に固執する判断も助けにならない。2016年ごろに PR を開いたが、メンテナーはデータベース層を変更したり差し替え可能にしたりすることにかなり強く反対していた
しかも数秒で calibre-web コンテナを立ち上げて、きれいな UI と OPDS を得られるのに、なぜわざわざその「美的感覚」を我慢しなければならないのか分からない
直感的ではなく、UI/UX はかなり悪い。強力なアプリケーションがよく抱える呪いをそのまま抱えているほうだ
それでも今日もう一度使ってみて、慣れられるか見てみるつもり。特に上級ユーザーにとっては、無料製品として本当に素晴らしい
良いプロジェクト。Calibre の機能は好きだけど、UI には自分もかなりもどかしさを感じていて、Apple Music 以前の iTunes と iBooks を混ぜたようなインターフェイスをデザインし始めた
まだ画面を1つ作っただけだが、ここで見られる: https://www.figma.com/file/m8qaYbPSnxiFPDPbuYtz2w/Calibre-re...
核心的な問いは、Calibre の主要機能を macOS ネイティブのように感じられる UI でどう見せられるかだった
クロスプラットフォームを目指さないなら、時間ができたときに Rust バックエンドと組み合わせた SwiftUI アプリとして作ってみることもできそう
Calibre の開発に追随して保守するのは難しいかもしれないが、面白い趣味プロジェクトに見える
特に Kemie Guaida[1] が Reddit に投稿した再デザインは大きなデザイン上のインスピレーションになったし、リポジトリにもクレジットを入れる必要があるので、近いうちに反映する予定: https://old.reddit.com/r/Calibre/comments/udzumn/testing_a_n...
プロジェクト全体の概要はここで見られる: https://www.figma.com/file/g4ntqXWa6C0PRGrG3WjyXM/Calibre-pr...
[1]: https://kemielikes.design/
昨日気づいたのだが、Ubuntu 22.04 で Kobo リーダーを接続したあと、
/media/oakhaven/koboreaderのマウントポイントにあるroot/ディレクトリへ epub をそのままコピーすればよい。すると端末の本の一覧に表示されるなぜか Kobo に本を入れるのは複雑だと思い込んでいて、ノートPCから Kobo へ本を移すときは Calibre だけを使っていた
Calibre に他の機能がたくさんあるのは知っているが、インターフェイスが気に入らなかったし、もう Calibre や似たようなアプリを使わなくて済むようになってよかった
特別な形式も不要で、ePub のような標準形式がきちんと動く
だから Kindle がどうして今もあれほど人気なのか不思議だった。先行者効果なのかもしれないが、ePub と PDF を読めない電子書籍リーダーは、MP3 と AAC を再生できないオーディオプレーヤーのように感じる
[1]: https://pgaskin.net/kepubify/
自分はまず USB で本を入れ、日刊ニュースや追加の本は rsync で同期していたと思う。一部のコンテンツは自動収集やメール購読のように自動生成されてディレクトリに入り、購入後に新しい本をコピーするように手動で入れたものもあった
実際にはそこまで複雑な問題ではないが、Calibre は本を特定のフォルダ構造へコピーする以外にも、はるかに多くのことをしている
単にフォルダを開いてコピー/貼り付けするより本当に簡単なのかは分からないが、Citadel は端末にどの本があるかを検出するときに Calibre が使う メタデータファイル を更新するので、フォルダ内の全ファイルを読まなくて済む
良さそう。ちょうど先週 Calibre をもう一度使ってみようとして、あの UI というブラックホールにはまった。UI/UX 作業を寄付しようかとも考えたが、数年がかりのプロジェクトになりそうだった
代わりに、このプロジェクトの UI/UX を手伝えるかもしれない
彼は素晴らしい仕事を成し遂げたが、非常に強い好みを持つ人の1人なので、他の人が作業すると言っても、あることには素早く、恣意的で、妙に敵対的になることがある
数か月間本を読んで、また取り込みの流れを繰り返す
純粋に気になるのだが、Calibre ほど機能が豊富で、それをはるかに優れていて簡単な形で提供している ネイティブのスマートフォンアプリ の例はあるのか?
趣味プロジェクトを実際にリリースした点が良い。見た目もすっきりしている。そして calibre CLI は間違いなく歓迎されそう。メニューを5段階もクリックして入っていくのは嫌なので
「リーダー」と「エディター」領域が明示的な目標ではないなら、Citadel がユーザーに実際に何をしてくれるのかが気になる。主に本を見て、並べ替えて、クリックするためのポータルなのか? もっと多くの機能を構想したロードマップはあるのか?
Citadel は本のタイトル、著者、将来的にはタグやカスタム列のようなメタデータ編集をサポートしており、すでに一部サポートしている。これは確実。デバイス同期も時間が経てば入るだろうし、オンラインソースからメタデータをダウンロードする機能も追加される予定
ただし、本の内容を編集したり、内蔵の電子書籍リーダーを入れたりする計画はない。すでに優れた電子書籍アプリやデバイスは多く、epub 編集はコレクション管理に比べて一般的に使われるものではないと思う
ロードマップはないが、フィードバックやアイデアは常に歓迎している
追加で、形式変換や DRM 解除のような機能もおそらく入ると思う。理想的にはクレートやプラグインとして実装し、拡張をより簡単にしたい
ebook-convertという CLI がある。epub、pdf、azw3、mobi など複数のファイル形式をサポートしている例:
ebook-convert file.epub file.azw3本当に格好よく見えるので、試してみるつもり。皮肉なことに、最近同じスタック、つまり Rust + Tauri + Svelte でオーディオブック管理用のデスクトップアプリを作った
興味のある人がいるかもしれないので宣伝すると: https://gitlab.com/fonner/audiobook-locker#audiobook-locker
このプロジェクトに Svelte と Tauri を選んだ理由が気になる。すでに慣れていたのか?
余談だけど、この実行方法で一日が楽しくなった
bun dev -- -- -- -- --server ...興味深い。私もしばらくの間、似たようなアイデアで似たプロジェクトに取り組み始めたが、ネイティブアプリではなく SvelteKit とブラウザ を選んだ
https://github.com/project-kiosk/kiosk
完成させるほどモチベーションを長く維持できていない
Citadel についての短い記事: https://denhoff.ca/posts/replacing-calibre