repairwheel VS jbig2dec

Compare repairwheel vs jbig2dec and see what are their differences.

jbig2dec

This is a mirror: the canonical repo is: git.ghostscript.com/jbig2dec.git. This repo does not host releases, they are here: https://github.com/ArtifexSoftware/jbig2dec/tags (by ArtifexSoftware)
Scout Monitoring - Free Django app performance insights with Scout Monitoring
Get Scout setup in minutes, and let us sweat the small stuff. A couple lines in settings.py is all you need to start monitoring your apps. Sign up for our free tier today.
www.scoutapm.com
featured
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
repairwheel jbig2dec
3 2
29 36
- -
7.1 2.8
6 days ago 2 months ago
Python C
MIT License GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

repairwheel

Posts with mentions or reviews of repairwheel. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-22.
  • Ask HN: What rabbit hole(s) did you dive into recently?
    12 projects | news.ycombinator.com | 22 Apr 2024
    I got into cross-compiling Python wheels (e.g., building macos wheels on linux and vice versa). Zig's `zig cc` does much of the heavy lifting, but one step in building a portable wheel is the "repair" process which vends native library dependencies into the wheel, necessitating binary patching (auditwheel does this for linux, delocate for macos).

    I wanted to be able to do this cross platform, so I re-implemented ELF patching and Mach-O patching and adhoc signing in Python, and wrapped them into a tool called repairwheel: https://github.com/jvolkman/repairwheel

  • Show HN: macOS-cross-compiler – Compile binaries for macOS on Linux
    7 projects | news.ycombinator.com | 17 Feb 2024
    I'll plug some work I've been doing to (attempt to) enable cross compilation of Python wheels. I put together a small example [1] that builds the zstandard wheel, and can build macos wheels on linux and linux wheels on macos using zig cc.

    macos wheels must still be adhoc signed (codesign) and binary patched (install_name_tool), so I re-implemented those functions in Python [2].

    [1] https://github.com/jvolkman/bazel-pycross-zstandard-example

    [2] https://github.com/jvolkman/repairwheel/tree/main/src/repair...

  • Sunday Daily Thread: What's everyone working on this week?
    4 projects | /r/Python | 22 Apr 2023
    I mixed auditwheel, delocate, and delvewheel into a single tool called repairwheel and reimplemented all of the required external tools (patchelf, otool, codesign, etc.) in pure python.

jbig2dec

Posts with mentions or reviews of jbig2dec. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-22.
  • Ask HN: What rabbit hole(s) did you dive into recently?
    12 projects | news.ycombinator.com | 22 Apr 2024
    > The worst offender (so far) is the JBIG2 format (several major libraries, including jbig2dec), a very popular format that gets EXTREMELY high compression ratios on bilevel images of types typical to scanned pdfs. But: it's also a format that's pretty slow to decompress—not something you want in a UI loop, like a PDF reader is! And, there's no way around that—if you look at the hot loop, which is arithmetic coding, it's a mess of highly branchy code that's purely serial and cannot be thread- nor SIMD- parallelized.

    Looking at the jbig2dec code, there appears to be some room for improvement. If my observations are correct, each segment has its own arithmetic decoder state, and thus can be decoded in its own thread. The main reader loop[1] is basically a state machine which attempts to load each segment in sequence[2], but it should not need to. The file has segment headers which contains the segments offsets and sizes. It should be possible to first read this header, then spawn N-threads to decode N-segment in parallel. Obviously, you don't want the threads competing for the file resource, so you could load each segment into its own buffer first, or mmap the whole file into memory.

    [1]:https://github.com/ArtifexSoftware/jbig2dec/blob/master/jbig...

    [2]:https://github.com/ArtifexSoftware/jbig2dec/blob/master/jbig...

  • MuPDF WASM Viewer Demo
    9 projects | news.ycombinator.com | 20 Apr 2024
    I still haven't found an tolerably fast PDF reader, and I'm permanently miserable with that file format. The example in OP works great, but that's only an "easy, modern" PDF made up of text. There's still nothing adequate (mupdf/mutool included) for the common case of scanned-page PDF's.

    The root problem isn't an easy performance fix: it's that a very popular PDF image compression format, JBIG2 [0], is unlike modern formats slow in decompression as well as compression. Here's the decompress hot loop [1,2] from libjbig2dec.so, which MuPDF calls out to. I isn't thread- or SIMD- parallelized, and I suspect that it isn't possible at all. There's just no easy way forwards in the near future—other than "buy faster CPU's".

    [0] https://en.wikipedia.org/wiki/JBIG2

    [1] https://github.com/ArtifexSoftware/jbig2dec/blob/master/jbig...

    [2] https://github.com/ArtifexSoftware/jbig2dec/blob/master/jbig...

What are some alternatives?

When comparing repairwheel and jbig2dec you can also consider the following projects:

tensorflow-windows-wheel - Tensorflow prebuilt binary for Windows

cibuildwheel - 🎡 Build Python wheels for all the platforms with minimal configuration.

twine - Utilities for interacting with PyPI

py2exe - Create standalone Windows programs from Python code