# mobi-rs
[](https://github.com/vv9k/mobi-rs/actions?query=workflow%3A%22mobi-rs+CI%22)
[](https://crates.io/crates/mobi)
[](https://github.com/vv9k/mobi-rs/blob/master/LICENSE)
[](https://docs.rs/mobi)
A crate to work with MOBI format ebooks.
## Usage
- add to `Cargo.toml`
```toml
[dependencies]
mobi = "0.7"
```
- `main.rs`
```rust
use mobi::{Mobi, MobiError};
fn main() -> Result<(), MobiError> {
let book = vec![0, 0, 0];
let m = Mobi::new(&book)?;
let stdin = std::io::stdin();
let mut handle = stdin.lock();
let m = Mobi::from_read(&mut handle)?;
let m = Mobi::from_path("/some/path/to/book.mobi")?;
let title = m.title();
let author = m.author().unwrap_or_default();
let publisher = m.publisher().unwrap_or_default();
let desc = m.description().unwrap_or_default();
let isbn = m.isbn().unwrap_or_default();
let pub_date = m.publish_date().unwrap_or_default();
let contributor = m.contributor().unwrap_or_default();
let metadata = &m.metadata;
let header = &metadata.header; let pdheader = &metadata.palmdoc; let mheader = &metadata.mobi; let exth = &metadata.exth;
let content = m.content_as_string();
Ok(())
}
```
## License
[**The MIT License (MIT)**](https://github.com/vv9k/mobi-rs/blob/master/LICENSE)
## Thanks to
[kroo](https://github.com/kroo/mobi-python) for inspiration and idea.