WASM instead of C Dependencies?

This page summarizes the projects mentioned and recommended in the original post on dev.to

SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • bimg

    Go package for fast high-level image processing powered by libvips C library

    I have web applications written in Rust and Go that need some basic image processing (reading JPEGs, PNGs, writing JPEGs, WebPs, AVIFs and resizing). This is something I always struggle with, because most libraries for image processing are written in C (libpng, libwebp, mozjpeg; or higher-level ones like vips). While there are usually dependencies in each language build on top of those C dependencies, like bimg for Go, I don’t like having C dependencies in a Rust, Go or even Node.js projects.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • wasmtime

    A fast and secure runtime for WebAssembly

    Wasmtime: 272ms

  • distroless

    🥑 Language focused docker images, minus the operating system.

    This is highly subjective, but I really want my Dockerfiles to either be FROM scratch or FROM gcr.io/distroless/static (GoogleContainerTools/distroless). To qualify, my applications must compile to static binaries and must not require libc. The worst case I’d be fine with is FROM gcr.io/distroless/base (static compiled, but libc is fine).

  • wasmer

    🚀 The leading Wasm Runtime supporting WASIX and WASI

    Wasmer Cranelift runtime: 275ms

  • mozjpeg

    Improved JPEG encoder.

    Testsetup: Encode a 6048x2048px big image using mozjpeg (mozjpeg-sys to be more specific), resize it down to 1008x665px using PistonDevelopers/resize, and decode it again using mozjpeg.

  • mozjpeg-sys

    Rust bindings for mozjpeg

    Testsetup: Encode a 6048x2048px big image using mozjpeg (mozjpeg-sys to be more specific), resize it down to 1008x665px using PistonDevelopers/resize, and decode it again using mozjpeg.

  • resize

    Simple resampling library in pure Rust (by PistonDevelopers)

    Testsetup: Encode a 6048x2048px big image using mozjpeg (mozjpeg-sys to be more specific), resize it down to 1008x665px using PistonDevelopers/resize, and decode it again using mozjpeg.

  • wazero

    wazero: the zero dependency WebAssembly runtime for Go developers

    wazero: 450000ms (7.5min)

  • squoosh

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

    GoogleChromeLabs/squoosh is actually pretty close to what I'd want, but isn't published as a Rust dependency and heavily relies on Node.js so doesn't work in Cloudflare Workers.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • refilelabs - image VS squoosh - a user suggested alternative

    2 projects | 29 Nov 2024
  • WebAssembly: A promising technology that is quietly being enshitified

    1 project | news.ycombinator.com | 22 May 2024
  • Unlocking the Power of WebAssembly

    3 projects | dev.to | 10 Mar 2024
  • WASM Instructions

    13 projects | news.ycombinator.com | 18 Feb 2024
  • Howto: WASM runtimes in Docker / Colima

    5 projects | dev.to | 12 Jan 2024