libiamf VS wuffs

Compare libiamf vs wuffs and see what are their differences.

libiamf

Reference Software for IAMF (by AOMediaCodec)
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
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
libiamf wuffs
1 84
29 4,049
- 7.6%
8.8 9.4
11 days ago 18 days ago
C C
BSD 3-clause Clear 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.

libiamf

Posts with mentions or reviews of libiamf. 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.

wuffs

Posts with mentions or reviews of wuffs. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-05-22.
  • Psion 5mx Emulator
    2 projects | news.ycombinator.com | 22 May 2024
    I was confused about how one can write an emulator in the wuffs language. :-D

    https://github.com/google/wuffs/blob/main/doc/note/hermetici...

  • FLaNK-AIM: 20 May 2024 Weekly
    28 projects | dev.to | 20 May 2024
  • Wuffs: Wrangling Untrusted File Formats Safely
    6 projects | news.ycombinator.com | 16 May 2024
    It's something around 2x faster than LibPNG in my tests (depending on the PNG file), see timings here: https://github.com/google/wuffs/issues/13#issuecomment-17325...

    So generally Wuffs is great and you should use it to decode your PNGs. There are some downsides: not all of the obscure bit depths and formats that PNG supports are loaded as-is, some are converted to more standard formats.

    Also the Wuffs documentation is a bit hard to understand. It's a litle bit of a mission getting PNG decoding working. You can see my code for that here though:

  • Still no love for JPEG XL: Browser maker love-in snubs next-gen image format
    7 projects | news.ycombinator.com | 4 Feb 2024
    Maybe this is what you are looking for:

    https://github.com/google/wuffs

    "Wuffs is a memory-safe programming language (and a standard library written in that language) for Wrangling Untrusted File Formats Safely."

  • 4-year campaign backdoored iPhones using possibly the most advanced exploit
    1 project | news.ycombinator.com | 27 Dec 2023
    It could author its format parsers in https://github.com/google/wuffs, and make them BSD-like open source to maximize adoption.

    An even bigger change: It could allow users to choose their iMessage client freely. Why not open up the protocol? I’m sure a security focused client would be popular and in the grand scheme of things easy to author.

    Perhaps they could open up more of the OS and apps. Perhaps their claims about the security of users and the App Store is kind of BS.

  • Just about every Windows/Linux device vulnerable to new LogoFAIL firmware attack
    4 projects | news.ycombinator.com | 6 Dec 2023
    This is one of the reasons I'm a big fan of wuffs[0] - it specifically targets dealing with formats like pictures, safely, and the result drops in to a C codebase to make the compat/migration story easy.

    [0] https://github.com/google/wuffs

  • Google assigns a CVE for libwebp and gives it a 10.0 score
    5 projects | news.ycombinator.com | 26 Sep 2023
    There are already huffman-decoding and some parts of webp algorithms in https://github.com/google/wuffs (language that finds missing bounds checks during compilations). In contrary, according to readme, this language allows to write more optimized code (compared to C). WEBP decoding is stated as a midterm target in the roadmap.
  • The WebP 0day
    6 projects | news.ycombinator.com | 21 Sep 2023
    Specifically, since performance is crucial for this type of work, it should be written in WUFFS. WUFFS doesn't emit bounds checks (as Java does and as Rust would where it's unclear why something should be in bounds at runtime) it just rejects programs where it can't see why the indexes are in-bounds.

    https://github.com/google/wuffs

    You can explicitly write the same checks and meet this requirement, but chances are since you believe you're producing a high performance piece of software which doesn't need checks you'll instead be pulled up by the fact the WUFFS tooling won't accept your code and discover you got it wrong.

    This is weaker than full blown formal verification, but not for the purpose we care about in program safety, thus a big improvement on humans writing LGTM.

  • What If OpenDocument Used SQLite?
    8 projects | news.ycombinator.com | 18 Sep 2023
    > parsing encoded files tends to introduce vulnerabilities

    If we are talking about binary formats, now there are systematic solutions like https://github.com/google/wuffs that protect against vulnerabilities. But SQLite is not just a format - it's an evolving ecosystem with constantly added features. And the most prominent issue was not even in core, it was in FTS3. What will SQLite add next? More json-related functions? Maybe BSON? It is useful, but does not help in this situation.

    Regarding traces, there are many forensics tools and even books about forensic analysis of SQLite databases. In well-designed format such tools should not exist in the first place. This is hard requirement: if it requires rewriting the whole file - then so be it.

  • CVE-2023-4863: Heap buffer overflow in WebP (Chrome)
    18 projects | news.ycombinator.com | 12 Sep 2023
    I agree that Wuffs [1] would have been a very good alternative! If it can be made more generally. AFAIK Wuffs is still very limited, in particular it never allows dynamic allocation. Many formats, including those supported by Wuffs the library, need dynamic allocation, so Wuffs code has to be glued with unverified non-Wuffs code [2]. This only works with simpler formats.

    [1] https://github.com/google/wuffs/blob/main/doc/wuffs-the-lang...

    [2] https://github.com/google/wuffs/blob/main/doc/note/memory-sa...

What are some alternatives?

When comparing libiamf and wuffs you can also consider the following projects:

libavif - libavif - Library for encoding and decoding .avif files

png-decoder - A pure-Rust, no_std compatible PNG decoder

jxl.js - JPEG XL decoder in JavaScript using WebAssembly (WASM)

stb - stb single-file public domain libraries for C/C++

csharplang - The official repo for the design of the C# programming language

image-png - PNG decoding and encoding library in pure Rust

highway - Performance-portable, length-agnostic SIMD with runtime dispatch

rust - Rust for the xtensa architecture. Built in targets for the ESP32 and ESP8266

kandria - A post-apocalyptic actionRPG. Now on Steam!

rust - Empowering everyone to build reliable and efficient software.

binrw - A Rust crate for helping parse and rebuild binary data using ✨macro magic✨.

checkedc - Checked C is an extension to C that lets programmers write C code that is guaranteed by the compiler to be type-safe. The goal is to let people easily make their existing C code type-safe and eliminate entire classes of errors. Checked C does not address use-after-free errors. This repo has a wiki for Checked C, sample code, the specification, and test code.

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
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured