Giter Club home page Giter Club logo

Comments (8)

mdboom avatar mdboom commented on June 20, 2024

It's important to remember that ASDF aims to be an interchange language beyond just for Python. Anything that we put into the spec that makes implementations in other languages more difficult is something we want to avoid.

By that standard, the criteria for inclusion of a compression algorithm in the spec needs to be:

  1. widely available (i.e. libraries available for all major programming languages)
  2. patent unencumbered
  3. has an implementation under a permissive license

bzip2 probably meets those criteria, though I could only find one Javascript implementation, where there are many for zlib (it's a much simpler algorithm).

lzma is less ideal. They don't explicitly claim that they are patent free, which can really matter for compression algorithms. If someone claims a patent on it, users could be obliged to pay royalties. It's also later to the Python game (only in the stdlib in 3.3 and later).

If these methods are not supported by the standard it would be useful to have user-defined filters to implement the compression.

The point of the standard is to ensure interoperability with other libraries and implementations, so I don't think we should knowingly veer from the standard in any implementation.

from asdf.

migueldvb avatar migueldvb commented on June 20, 2024

That sounds good. I was thinking about having user-defined compression filters that could be part of the standard like the registered compression filters in HDF5, apart from the supported zlib compression method. But I agree that zlib is a good choice of compression library.because of those requirements.

from asdf.

mdboom avatar mdboom commented on June 20, 2024

I think bzip2 is probably fine to add, though. There may be an argument to only support only that perhaps, in the interest of not creating too many ways to do things. It's not too late to take zlib away, as we haven't made a release yet. @embray: Thoughts?

from asdf.

embray avatar embray commented on June 20, 2024

I don't have strong opinions about it, though I agree with the guidelines @mdboom laid out. Interestingly the talk of optional compression filters relates pretty well to my comments elsewhere today about output filters...

from asdf.

migueldvb avatar migueldvb commented on June 20, 2024

bzip2 compresses more effectively than zlib but it is also generally slower. I think that it would be nice that the user can choose the compression method but I understand the guidelines and don't have a strong preference about any of them.

from asdf.

embray avatar embray commented on June 20, 2024

I don't see too much of a problem with allowing one or the other (or possibly other schemes that could be added later so long as they meet the criteria).

from asdf.

mdboom avatar mdboom commented on June 20, 2024

I'm going to close this. We now have bzip2 support and I think lzma support is a little problematic for right now.

from asdf.

migueldvb avatar migueldvb commented on June 20, 2024

That is fine. It is good to have bzip2 support.

from asdf.

Related Issues (20)

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.