libavif VS sharp

Compare libavif vs sharp and see what are their differences.

libavif

libavif - Library for encoding and decoding .avif files (by AOMediaCodec)

sharp

High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP, AVIF and TIFF images. Uses the libvips library. (by lovell)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
libavif sharp
44 97
1,364 27,943
4.0% -
9.7 9.4
7 days ago about 21 hours ago
C JavaScript
GNU General Public License v3.0 or later Apache License 2.0
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.

libavif

Posts with mentions or reviews of libavif. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-09-12.
  • CVE-2023-4863: Heap buffer overflow in WebP (Chrome)
    18 projects | news.ycombinator.com | 12 Sep 2023
    It's 2023, surely this is not yet another bug related to memory unsafety that could be avoided if we'd stop writing critical code that deals with extremely complex untrusted input (media codecs) in memory unsafe languages?

    Yep, of course it is: https://github.com/webmproject/libwebp/commit/902bc919033134...

    I guess libwebp could be excused as it was started when there were no alternatives, but even for new projects today we're still committing the same mistake[1][2][3].

    [1] -- https://code.videolan.org/videolan/dav1d

    [2] -- https://github.com/AOMediaCodec/libavif

    [3] -- https://github.com/AOMediaCodec/libiamf

    Yep. Keep writing these in C; surely nothing will go wrong.

  • Libavif 1.0 Released
    1 project | news.ycombinator.com | 28 Aug 2023
  • Is there any clear documentation on how to make avif collections and how to read them?
    2 projects | /r/AV1 | 24 Apr 2023
    As far as I understand you are talking about this plugin. I don't know c++ and half of the code was like a black magic, but if I get it correctly, it encodes your images with libavif, and adds custom metadata ([solar/time of day] -> json -> base64).
  • FSF Slams Google over Dropping JPEG-XL in Chrome
    10 projects | news.ycombinator.com | 16 Apr 2023
    So a few dozen comments, but so far it doesn't look like any mention the immediate thing that jumped out at me which was the claims vs AVIF:

    >"In turn, what users will be given is yet another facet of the web that Google itself controls: the AVIF format."

    Huh? I'll admit I haven't been following codecs as super ultra closely as I used to, but I thought AOM was a pretty broad coalition of varying interests and AV1 an open, royalty free codec that was plenty open source friendly? I've heard plenty of reasonable arguments that JPEG XL has some real technical advantages over AVIF and as well as superior performance is much more feature rich and scalable. So I could see people being bummed for that. But this is the first time I've heard the assertion that it's somehow a Google project? I mean, AOM's libavif reference is BSD too [0]? I'd love some more details on that from anyone who has been following this more closely. I can even understand if AOM isn't as community friendly and an accusation that it's dominated by big corps, but in that case why single out Google alone? From wiki:

    >The governing members of the Alliance for Open Media are Amazon, Apple, ARM, Cisco, Facebook, Google, Huawei, Intel, Microsoft, Mozilla, Netflix, Nvidia, Samsung Electronics and Tencent.

    Like, Google is certainly significant, but that's a lot of equally heavy hitters. And interesting that Mozilla is there too.

    ----

    0: https://github.com/AOMediaCodec/libavif

  • JPEG XL support has officially been removed from Chromium
    3 projects | news.ycombinator.com | 10 Dec 2022
    > You have a good point that AVIF layered image items can act like such P/B-frames. Do libavif (or other AVIF implementations if any) make use of them?

    Seemingly. As search for "libavif progressive encoding" shows several issues about this, and a search for "progressive" in https://github.com/AOMediaCodec/libavif/blob/main/include/av... shows an enum for avifProgressiveState, appears to show support for it.

  • Wavif discussion
    1 project | /r/AV1 | 1 Dec 2022
    I mean, it already has it: https://github.com/AOMediaCodec/libavif/commit/570c42c2c10a878c8cc896f1c5daf1a955274142
  • Animated AVIF and JXL tools for Windows
    2 projects | /r/AV1 | 20 Nov 2022
    Apart from mpv and ffplay, the only software I currently have installed that can play animated AVIF is Chromium. And from what I've read from this libavif bug report, I'm not sure if looping animated files in general is something that's just done by default by a lot of software regardless of whether the file is marked as a loop or not.
  • How to create progressive AVIF images?
    1 project | /r/AV1 | 9 Nov 2022
    The support for progressive AVIF decoding has landed in libavif and in Chromium. But are there any docs on how to create and test progressive AVIF images?
  • The Case for JPEG XL
    1 project | /r/programming | 3 Nov 2022
    The "for example" is the key here, because AVIF does support multi-layer coding per the spec now (though not currently implemented in libavif from what I can tell).
  • Google Outlines Why They Are Removing JPEG-XL Support From Chrome
    2 projects | /r/jpegxl | 1 Nov 2022
    libavif is at version 0.11.1, see https://github.com/AOMediaCodec/libavif/tags

sharp

Posts with mentions or reviews of sharp. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-21.
  • Next.js and Bunny CDN: Complete Guide to Image Uploading with Server Actions
    4 projects | dev.to | 21 Apr 2024
    Last thing left is to use our new upload function in our server action. Since I like to upload images in single format and have some more control over them, I will additionally use sharp library. For file name, I'll generate some random string using nanoid:
  • Sharp – fast image conversion in Node.js
    1 project | news.ycombinator.com | 26 Mar 2024
  • Optimizing Image Display with Blur Placeholder and Lazyload
    1 project | dev.to | 7 Mar 2024
    blur is a technique to blur images while reducing the file size surprisingly. blur works by enlarging the pixels of the image, which reduces the details of the image, and the number of colors also decreases, thus saving storage space. Sharp is a popular image processing library in Node.js, and it supports the blur function. After going through the blur function, the image size at this point is only a few KB, which is reasonable for an image placeholder in the article.
  • Organize the mess of your photo folders with Node
    2 projects | dev.to | 21 Nov 2023
    sharp
  • Creating Chess Board SVGs, PNGs, and GIFs
    3 projects | dev.to | 10 Nov 2023
    For simplicity, I will be generating PNGs with JavaScript/Node and the Sharp image library. Any library that can convert between pixel arrays and image files will make the process quite straightforward.
  • My Journey to Accelerate Load Times in Heavy Frontend
    3 projects | dev.to | 8 Oct 2023
    There is also a library that Next.js itself uses: sharp. It can be setup as Node.js service. I even played around a little: image-proxy-service
  • Automated Image Compression: A Vite Plugin Using Sharp
    2 projects | dev.to | 17 Aug 2023
    Sharp Documentation: Link
  • Using SVG to create simple sparkline charts
    7 projects | news.ycombinator.com | 10 Jul 2023
  • JavaScript Gom Jabbar
    12 projects | news.ycombinator.com | 2 Jul 2023
    ESLint does an amazing job in detecting floating promises. I've not had it miss one, ever. When adding this to a project, I've discovered multiple accidental bugs due to a missing "await" keyword--bugs that were extremely subtle and intermittent in many cases.

    The only thing it can't do is determine that you actually did handle the promise later. Which is fine. It's a LINTING RULE, and false positives are the name of the game.

    What's BAD is when you accidentally miss handling a promise at all. It's an invisible error without the linting rule.

    Your other comments...don't even make sense. You're going to build a Lanczos filter by hand? Or you're only going to ... compile ImageMagick to WebAssembly?!, ... an implementation which is tremendously slower (nearly unusably so for large images) than that of Sharp:

    https://www.npmjs.com/package/sharp

    ... which is simply an import away?

    No, what you're doing is called "motivated reasoning." You've concluded that Deno is the best, and you're reinterpreting all of my complaints in convoluted ways to support your predetermined conclusion.

    Standard fanboy behavior. Or troll behavior. I cite Poe's Law as why it's impossible to tell the difference.

  • How does next/image work?
    1 project | /r/nextjs | 1 Jul 2023

What are some alternatives?

When comparing libavif and sharp you can also consider the following projects:

rav1e - The fastest and safest AV1 encoder.

jimp - An image processing library written entirely in JavaScript for Node, with zero external or native dependencies.

cavif-rs - AVIF image creator in pure Rust

squoosh - Make images smaller using best-in-class codecs, right in the browser.

av1-avif - AV1 Image File Format Specification - ISO-BMFF/HEIF derivative

gm - GraphicsMagick for node

libjxl - JPEG XL image format reference implementation

Next.js - The React Framework

WebKit - Home of the WebKit project, the browser engine used by Safari, Mail, App Store and many other applications on macOS, iOS and Linux.

pica - Resize image in browser with high quality and high speed

benchmarks - Test images and results of compression benchmarks.

sveltekit-image-plugin - SvelteKit demo code for using vite-imagetools to add cached, responsive, Next-Gen images to a SvelteKit site with no cumulative layout shift.