Skip to main content

Crate nkscan

Crate nkscan 

Source
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::now panics and a thread cannot block
transport
Abstraction layer and cross-platform implementation of the transports for the scanners (USB/FireWire)