| Crates.io | numpress-rs |
| lib.rs | numpress-rs |
| version | 1.1.0 |
| created_at | 2025-04-26 23:14:49.694704+00 |
| updated_at | 2025-04-26 23:14:49.694704+00 |
| description | A pure rust implementation of ms-numpress, a fast, minimally lossy compression algorithm for mass spectrometry data. |
| homepage | |
| repository | https://github.com/mobiusklein/numpress-rs |
| max_upload_size | |
| id | 1650662 |
| size | 54,398 |
A pure rust implementation of ms-numpress, a fast, minimally lossy compression algorithm for mass spectrometry data.
Note: This is a fork of https://github.com/Alexhuszagh/numpress, which only supported the linear encoding algorithm. This fork implements the short logged float
encoding and positive integer encoding as well. It focuses on a Rust API, and removes parts of the original no_std/extern "C" interface due to changes in FFI safety
recommendations that no longer hold.
// Compress floats to bytes
let floats: Vec<f64> = vec![100., 101., 102., 103.];
let compressed: Vec<u8> = numpress_compress(&decoded, DEFAULT_SCALING)?;
// Decompress floats from bytes.
let decompressed: Vec<f64> = numpress_decompress(&compressed)?;
Numpress's documentation can be found on docs.rs.
Numpress is available on crates.io. Use the following in Cargo.toml:
[dependencies]
numpress-rs = "1.0"
Like the original ms-numpress implementation, this code is open source. It is dual licensed under the Apache 2.0 license as well as the 3-clause BSD license. See the LICENCE-BSD and the LICENCE-APACHE files for the licenses.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in numpress by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.