Update README: v0.6.0 API, real sample output

This commit is contained in:
MattJackson
2026-04-09 13:03:00 -07:00
parent 81a88dcad0
commit d7d13d2849
+8 -6
View File
@@ -6,7 +6,7 @@
Rust library for 4K UHD / Blu-ray optical drives. Drive access, disc scanning, stream labels, AACS decryption, KEYDB updates, and content reading in one crate. Bundled drive profiles — no external files needed.
**12-23 MB/s** read speeds on BD. Full LibreDrive init: unlock, firmware upload, speed calibration — all from pure Rust.
**12+ MB/s** sustained read speeds on BD. Full init: unlock, firmware upload, speed calibration — all from pure Rust.
Multi-lingual by design — the library outputs structured data and numeric error codes, never English text. Build any UI or localization on top.
@@ -18,7 +18,7 @@ Part of the [freemkv](https://github.com/freemkv) project.
```toml
[dependencies]
libfreemkv = "0.5"
libfreemkv = "0.6"
```
## Quick Start
@@ -29,6 +29,8 @@ use std::path::Path;
// Open drive — profiles are bundled, auto-identified
let mut session = DriveSession::open(Path::new("/dev/sr0"))?;
session.wait_ready()?; // wait for disc
session.init()?; // optional: unlock + calibrate for full speed
// Scan disc — UDF, playlists, streams, AACS (all automatic)
let disc = Disc::scan(&mut session, &ScanOptions::default())?;
@@ -47,7 +49,7 @@ while let Some(unit) = reader.read_unit()? {
## What It Does
- **Drive access** — open, identify, unlock, firmware upload, speed calibration, eject
- **12-23 MB/s reads** — auto-detects kernel transfer limits, full disc speed
- **12+ MB/s reads** — auto-detects kernel transfer limits, sustained full speed
- **Disc scanning** — UDF 2.50 filesystem, MPLS playlists, CLPI clip info
- **Stream labels** — 5 BD-J format parsers (Paramount, Criterion, Pixelogic, CTRM, Deluxe)
- **AACS decryption** — transparent key resolution and content decrypt (1.0, 2.0 in progress)
@@ -59,10 +61,10 @@ AACS decryption requires a KEYDB.cfg file. If available at `~/.config/aacs/KEYDB
## Architecture
```text
DriveSession — open, identify, unlock, read sectors
DriveSession — open, identify, init (optional), read sectors
├── ScsiTransport — SG_IO (Linux), IOKit (macOS)
├── DriveProfile — per-drive unlock parameters (bundled)
└── Platform — MediaTek (supported), Renesas (planned)
├── DriveProfile — per-drive parameters (bundled)
└── PlatformDriver — MediaTek (supported), Renesas (planned)
Disc — scan titles, streams, AACS state
├── UDF reader — Blu-ray UDF 2.50 with metadata partitions