1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2017 年 8 月 3 日

#43#wiki

MIT/Apache

17KB
308 代码行数(不含注释)

PalmDB 解析器 for Rust

"Build Status", link="https://travis-ci.org/pwoolcoc/palmdb-rs"

这个软件包实现了一个简单的 PalmDB 解析器。为什么?因为 .mobi 文件使用它,我想生成 .mobi 文件,第一步是熟悉该格式。下一步将是添加 PalmDB 的生成器,以及 Mobi 的解析器和生成器。

文档

示例

extern crate palmdb;

use std::fs::File;
use std::io::{self, Read};

use palmdb::PalmDB;

fn run() -> Result<(), io::Error> {
    let mut f = File::open("/path/to/palmdb/file")?;
    let mut input = vec![];
    f.read_to_end(&mut input)?;
    let db = PalmDB::parse(&input).expect("Could not parse db file");
}

fn main() {
    if let Err(_) = run() {
        ::std::process::exit(1);
    }
}

lib.rs:

PalmDB 格式的解析器

此代码是基于 MobileRead wiki 上的规范创建的:[https://wiki.mobileread.com/wiki/PDB#Palm_Database_Format](https://wiki.mobileread.com/...),以及 Calibre 实现中的以下部分:[https://github.com/kovidgoyal/calibre/blob/e333001d31dc49102fe5178bd2a8af4f06962fac/src/calibre/ebooks/pdb/header.py](https://github.com/kovidgoyal/calibre/...)

示例

extern crate palmdb;
use palmdb::PalmDB;
use std::fs::File;
use std::io::Read;

let mut db_file = File::open("/path/to/some/palmdb/file")?;
let mut input = vec![];
db_file.read_to_end(&mut input)?;
let db = PalmDB::parse(&input).expect("Couldn't parse DB");

依赖项

~3.5–5.5MB
~115K SLoC