Crates.io | qoi |
lib.rs | qoi |
version | 0.4.1 |
source | src |
created_at | 2021-11-25 13:20:16.450595 |
updated_at | 2022-10-16 23:52:56.288067 |
description | VERY fast encoder/decoder for QOI (Quite Okay Image) format |
homepage | https://github.com/aldanor/qoi-rust |
repository | https://github.com/aldanor/qoi-rust |
max_upload_size | |
id | 487595 |
size | 164,030 |
Fast encoder/decoder for QOI image format, implemented in pure and safe Rust.
std::io
streams directly.no_std
support.use qoi::{encode_to_vec, decode_to_vec};
let encoded = encode_to_vec(&pixels, width, height)?;
let (header, decoded) = decode_to_vec(&encoded)?;
assert_eq!(header.width, width);
assert_eq!(header.height, height);
assert_eq!(decoded, pixels);
decode:Mp/s encode:Mp/s decode:MB/s encode:MB/s
qoi.h 282.9 225.3 978.3 778.9
qoi-rust 427.4 290.0 1477.7 1002.9
Benchmarks have also been run for all of the other Rust implementations of QOI for comparison purposes and, at the time of writing this document, this library proved to be the fastest one by a noticeable margin.
The minimum required Rust version for the latest crate version is 1.61.0.
no_std
This crate supports no_std
mode. By default, std is enabled via the std
feature. You can deactivate the default-features
to target core instead.
In that case anything related to std::io
, std::error::Error
and heap
allocations is disabled. There is an additional alloc
feature that can
be activated to bring back the support for heap allocations.
This project is dual-licensed under MIT and Apache 2.0.