Giter VIP home page Giter VIP logo

blosc-rs's People

Contributors

asomers avatar clbarnes avatar mulimoen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

blosc-rs's Issues

This crate allows copying values of arbitrary type

This crate allows copying values of arbitrary type, which can lead to double free.

Only values that are Copy should be allowed to be compressed/decompressed.

Example:

fn main() {
    let data: Vec<String> = vec!["string".into()];
    let ctx = blosc::Context::new();
    let compressed = ctx.compress(&data);
    let decompressed = blosc::decompress(&compressed).unwrap();

    drop(data);
    drop(decompressed); // Double free
}

Switch from galvanic-test to rstest

blosc-rs uses galvanic-test in its integration tests. However, that crate is unmaintained and it's been surpassed by rstest. We should switch to rstest.

WASM support

By linking a C library, it's obviously harder to get blosc-rs to run in a browser. However, c-blosc itself can be compiled to WASM (see Blosc/c-blosc#238 (comment) and https://github.com/manzt/numcodecs.js/tree/main/codecs/blosc ). I don't know much about linking C libraries or WASM itself (other than running cargo build and praying...); is it possible to bake that kind of configuration into a build.rs and gain WASM support for blosc-sys? I gather the hard bit is the FFI between rust and C.

I suppose there could alternatively be a separate crate which generates a WASM blob as above and then writes a dependent rust wrapper around it with js_sys for API niceness.

Linker errors

When trying to build a small project with blosc as a dependency, I get this linker error:

= note: ld: library 'blosc' not found
          clang: error: linker command failed with exit code 1 (use -v to see invocation)

blosc version: 0.2.0
OS: Mac
Processor: Apple Silicon
Rust version: 1.73.0

Deprecate Snappy

Per discussion in #17 C-Blosc has removed Snappy support. blosc-rs should follow suit and deprecate it.

CI improvements

  • Abandon codecov, which doesn't work very well
  • Test on FreeBSD as well as Linux
  • Install c-blosc from apt instead of from source. Debian 11 includes a recent enough package
  • Run Clippy
  • Run cargo-audit

segfaults on Ubuntu 18.04

This is due to unconditional setting of the two last parameters of blosc_get_complib_info and blosc_get_complib_info not accepting a string which it does not recognize.

This is fixed upstream, but older libraries are still in use by some distros
Blosc/c-blosc#227
Blosc/c-blosc#228

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.