| Crates.io | code-scanner-driver |
| lib.rs | code-scanner-driver |
| version | 0.1.1 |
| created_at | 2025-11-17 13:57:46.497877+00 |
| updated_at | 2025-11-17 14:08:01.084637+00 |
| description | Driver for barcode scanners and keyboard input with GTIN validation, async streaming, and burst detection. |
| homepage | https://github.com/TiDzejKej/code-scanner-driver |
| repository | https://github.com/TiDzejKej/code-scanner-driver |
| max_upload_size | |
| id | 1936816 |
| size | 24,542 |
A lightweight Rust driver for barcode scanners and keyboard-emulated input, featuring:
rdevScanner input detection
Groups rapid keystrokes into a single scan event.
GTIN validation
Checks GTIN-8 / GTIN-12 / GTIN-13 / GTIN-14 via checksum.
Async stream API
Uses tokio_stream for ergonomic event consumption.
Global keyboard hook
Powered by rdev, works across platforms.
Add to your Cargo.toml:
[dependencies]
code-scanner-driver = "0.1"
use code_scanner_driver::ScannerStream;
use tokio_stream::StreamExt;
#[tokio::main]
async fn main() {
let mut stream = ScannerStream::new().unwrap();
println!("Listening for scans...");
while let Some(event) = stream.next().await {
println!("Scan received: {:?}", event);
}
}
use code_scanner_driver::validate_gtin;
let code = "5901234123457";
match validate_gtin(code) {
Some(kind) => println!("{} is a valid {}", code, kind),
None => println!("{} is NOT a valid GTIN", code),
}
GTIN-8
GTIN-12
GTIN-13
GTIN-14