3个不稳定版本
0.2.0 | 2023年12月9日 |
---|---|
0.1.1 | 2023年6月24日 |
0.1.0 | 2023年6月24日 |
#58 在 多媒体
1MB
3.5K SLoC
Eloran
使用Rust编写的漫画和电子书Web库,具有阅读、搜索、阅读状态和书签...
简介
我在过去的几年里使用了Ubooquity,但遗憾的是它不是开源的,并且没有阅读状态,所以我决定寻找另一种解决方案。
我尝试了一些替代方案
- Komga:我认为这是最好的项目,但没有“文件夹视图”😥
- Tanoshi:工作良好,也是在Rust中🦀🚀,但没有对电子书的支持
- Calibre web 或 BicBucStriim:我只是无法使用Calibre的分类系统
- Kavita:也是一个很好的项目,但我不喜欢集合系统(感觉像Calibre)
- Nextcloud epubreader:一个旧的应用程序,但它不能与我的大部分收藏夹一起工作
所以,我有了这个名为我的孩子的个人项目(Elora 和 Revan)。
请随意使用、改进并向我的低代码质量哭泣!
- 使用sqlite数据库
- 将电子书和漫画封面存储在数据库中(每个封面约10ko,15000个文件约160 Mo)
- 多用户,带有书签页面、阅读状态和页码(不适用于PDF),argon2散列密码
- 定期扫描库文件夹
- 无缓存数据,漫画图像会即时提取
- 漫画页面响应式大小,以优化移动网络使用
- 小型二进制文件:5 Mio,基于alpine的镜像:13 Mio
- 小型CSS,小型压缩SVG,无JavaScript
- rust 🦀🚀
屏幕截图
我知道这很糟糕 🤮,我还没有处理CSS,请耐心等待(或帮助我 🆘)!
安装
Podman / Docker
请随意自定义监听端口和路径...
podman pull ghcr.io/thasos/eloran:latest
podman run -d -p 0.0.0.0:3200:3200 \
-v /host_data/eloran/sqlite:/opt/eloran/sqlite \
-v /host_data/library:/library \
--name eloran \
ghcr.io/thasos/eloran:latest
从源码
目前需要css
目录,因此最简单的方法是克隆源代码并使用cargo构建它,可用的二进制文件和Docker镜像将很快可用。
git clone https://github.com/thasos/eloran.git
cd eloran
just build
target/x86_64-unknown-linux-gnu/release/eloran
如果您没有使用 just,可以使用它 😁 或者直接运行 cargo build --release
构建依赖项
Nix
nix-shell shell.nix
Arch
sudo pacman -S libarchive cairo poppler-glib
# if you want to package it in alpine image
sudo pacman -S musl
Debian/ubuntu
sudo apt install libarchive-dev libcairo2-dev libpoppler-glib-dev
# if you want to package it in alpine image
sudo apt install musl-dev
Fedora
sudo dnf install rust-glib-sys-devel.noarch
sudo dnf install rust-cairo-sys-rs0.16-devel.noarch
sudo dnf install cairo-gobject-devel.x86_64
sudo dnf install poppler-glib-devel.x86_64
sudo dnf install libarchive-devel.x86_64
待办事项
- 修改时正确更新文件
- 在数据库中哈希密码 !!
- 在数据库中存储会话(参见
fn create_router()
在 src/http_server.rs) - 漂亮的错误处理
- 更多测试
- 在
library_path
中允许相对路径 - 修复子目录的元素编号
- 处理目录中的
cover.jpg
文件(或使用第一个文件的封面?) - 自定义CSS
- 上传文件
- 首次启动时安装页面:管理员密码、library_path、新用户...
- 共享文件(或目录,或页面)
- 在首选项中显示网格或列表视图
- 在读取、文件信息和网格视图中显示进度条
- 在阅读和从文件信息中轻松转到页面编号
- 在新标签页中阅读PDF
- 在书签页面中显示阅读状态
- 更好的CSS 🤪
- 真正的电子书阅读
- 导出阅读状态
- 列出“接下来要读”
依赖项
~88MB
~1.5M SLoC