https://github.com/althonos/opticaldisc
Read optical media filesystems with Rust
https://github.com/althonos/opticaldisc
iso-image iso9660 parser rust-crate
Last synced: 3 months ago
JSON representation
Read optical media filesystems with Rust
- Host: GitHub
- URL: https://github.com/althonos/opticaldisc
- Owner: althonos
- License: mit
- Created: 2018-05-01T17:24:05.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-05-09T10:26:20.000Z (over 7 years ago)
- Last Synced: 2025-09-09T04:57:23.814Z (4 months ago)
- Topics: iso-image, iso9660, parser, rust-crate
- Language: Rust
- Size: 247 KB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: COPYING
Awesome Lists containing this project
README
# `opticaldisc`
*Read optical media filesystems with Rust .*
[](https://travis-ci.org/althonos/opticaldisc/branches)
[](https://codecov.io/github/althonos/opticaldisc)
[](https://choosealicense.com/licenses/mit/)
[](https://github.com/althonos/opticaldisc)
[](https://crates.io/crates/opticaldisc)
[](https://docs.rs/opticaldisc)
[](https://sagiegurari.github.io/cargo-make)
[](http://keepachangelog.com/)
[](https://saythanks.io/to/althonos)
## Dependencies
| Package | Description | Minimum | Latest | Source | License |
| --- | --- | --- | --- | --- | --- |
| **nom** | byte parser combinators |  | [](https://crates.io/crates/nom) | [](https://github.com/Geal/nom) | [](https://choosealicense.com/licenses/unlicense/) |
| **memchr** | safe interface to `memchr` |  | [](https://crates.io/crates/memchr) | [](https://github.com/BurntSushi/rust-memchr) | [](https://choosealicense.com/licenses/mit/) |
| **error-chain** | convenient errors management |  | [](https://crates.io/crates/error-chain) | [](https://github.com/rust-lang-nursery/error-chain) | [](https://choosealicense.com/licenses/apache-2.0/) |
| **btoi** | convert strings to ints |  | [](https://crates.io/crates/btoi) | [](https://github.com/niklasf/rust-btoi) | [](https://choosealicense.com/licenses/apache-2.0/) |
| **chrono** | date and time management |  | [](https://crates.io/crates/chrono) | [](https://github.com/chronotope/chrono) | [](https://choosealicense.com/licenses/apache-2.0/)
## Quickstart
Add this crate to your `Cargo.toml` manifest:
```toml
[dependencies]
opticaldisc = "^0.1.0"
```
## Usage
### Open an ISO-9660 filesystem
Open an ISO filesystem from anything that's both `Read` and `Seek`:
```rust
extern crate opticaldisc;
let file: std::fs::File = ...;
let iso = opticaldisc::iso::IsoFs::new(file)
```
It's also possible to read a buffer containing binary data (using
[`std::io::Cursor`](https://doc.rust-lang.org/std/io/struct.Cursor.html)
to emulate a file).
```rust
extern crate opticaldisc;
let data = include_bytes!("...");
let iso = opticaldisc::iso::IsoFs::from_buffer(&data[..]);
```