Expand description
A cross-platform driver for Nikon (Coolscan) film scanners
Calls that talk to the unit are async but block natively. Use pollster::block_on, or spawn_blocking under tokio
use nkscan::{device, session::Session};
let devices = device::list().await;
let device = devices.first().expect("no scanner found");
let mut session = Session::open(device.open().await?).await?;
session.stage().await?; // homes the mechanism once a holder is loaded
let caps = session.capabilities();Modules§
- device
- Unification of all the different transports to actually present the user
- dust
- An implementation of IR-based dust removal following @a6o’s openICE
- error
- High level errors containing protocol and transport errors
- protocol
- Transport-agnostic implementations of the Nikon wire-protocol
- scan
- High-level scanning operations
- session
- An open, exclusive hold of a scanner
- time
- A clock and a sleep for native and browser builds. In a browser
Instant::nowpanics and a thread cannot block - transport
- Abstraction layer and cross-platform implementation of the transports for the scanners (USB/FireWire)