awesome-repositories.com
Blog
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
google avatar

google/wuffs

0
View on GitHub↗
4,773 stars·144 forks·C·3 views

Wuffs

Wuffs is a toolset for generating memory-safe, sandboxed parsers and decoders from domain-specific language specifications. It functions as a compiler that transforms these specifications into executable code for C, Go, or Rust, specifically designed to decode untrusted file formats while preventing buffer and integer overflows.

The project employs a sandboxed execution model that prohibits system calls and manual memory management to ensure computations are side-effect free. It utilizes a refined type system and compile-time constraint verification to enforce memory safety, alongside saturating arithmetic to prevent numerical overflows.

The system provides safe implementations for processing structured data, image formats, and compressed streams. Its capabilities cover image decoding and encoding, the decompression of various file formats, and the calculation of data integrity checksums.

Integration is simplified through the generation of self-contained, single-file C libraries and header-only library support.

Features

  • Safe Parser Generators - A tool that compiles a domain-specific language into a C library for safely decoding untrusted file formats.
  • Memory-Safe Parser Generators - Functions as a compiler that transforms domain-specific specifications into memory-safe C libraries for decoding untrusted formats.
  • Safe Implementations - Provides safe implementations for decoding and encoding formats including JPEG, PNG, GIF, Gzip, and Zlib.
  • Image Format Decoders - A capability to parse and extract pixel data from file types like JPEG, PNG, and GIF into usable representations.
  • Hermetic Execution Environments - Implements a sandboxed execution model that prohibits system calls and manual memory management to ensure computations are side-effect free.
  • Decompression Implementations - A standardized interface for decompressing file formats and streams to recover original data from compressed sources.
  • Hermetic Library Compilers - Generates hermetic C code that prohibits system calls and manual memory management to ensure execution safety.
  • Overflow-Proof Compiler Passes - Eliminates buffer and arithmetic integer overflows at compile time to ensure safe processing without runtime overhead.
  • Domain Specific Languages - Employs a domain-specific language to define the logic for memory-safe data processing and parsing.
  • Refined Type Systems - Utilizes a refined type system with non-null pointers and fixed-size arrays to ensure memory safety.
  • Configuration to C Transpilation - Translates a domain-specific language into C source code to generate memory-safe parsing libraries.
  • Safe Binary Parsing - Implements strict bounds and memory safety to prevent overflows when decoding untrusted binary data streams.
  • Scratch-Space Work Buffers - Uses a dedicated scratch space for temporary memory to avoid dynamic allocation during data processing.
  • Structured Data Parsers - A capability to process serialized formats like JSON and CBOR to extract organized information from raw byte streams.
  • Image Format Encoding - A feature to transform raw data into specific file formats such as JPEG, PNG, and Deflate for storage or transmission.
  • Compile-Time Correctness Verification - Uses a refined type system and formal rules during compilation to prove the absence of safety vulnerabilities.
  • Bzip2 Decompressions - A specific implementation for decompressing data encoded with the Bzip2 compression format.
  • Gzip Decompression - A process that decompresses Gzip files by combining Deflate decompression with CRC-32 checksum verification.
  • Deflate Decompression - A capability to decompress data using the Deflate algorithm with options for optimized initialization speed.
  • Zlib Decompressions - A process that decompresses Zlib streams by combining Deflate decompression with Adler-32 checksum verification.
  • LZW Decompressions - A utility to decompress data encoded using the Lempel-Ziv-Welch algorithm by transforming input streams into expanded output.
  • Saturation Arithmetic - Implements saturating arithmetic to prevent numerical overflows during data processing.
  • Hermetic Function Definitions - Defines hermetic functions that only modify local state to ensure the global system state remains unchanged.
  • Range Constraints - Restricts basic types to specific subsets of their natural range to ensure values stay within predefined bounds.
  • Single-File Libraries - Produces self-contained C source files to eliminate external dependencies and simplify integration.
  • Coroutine-Based State Management - Uses coroutines to suspend and resume execution, enabling the processing of fragmented or asynchronous data streams.
  • Purity Annotations - Uses effect markers to distinguish pure operations from state-modifying functions or coroutines.
  • Multi-Target Code Generation - A feature that translates a domain-specific language into executable code for other target environments such as Go or Rust.
  • Binary Data Processing - Processes byte arrays and slices using explicit endianness to validate file signatures safely.

Star history

Star history chart for google/wuffsStar history chart for google/wuffs

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does google/wuffs do?

Wuffs is a toolset for generating memory-safe, sandboxed parsers and decoders from domain-specific language specifications. It functions as a compiler that transforms these specifications into executable code for C, Go, or Rust, specifically designed to decode untrusted file formats while preventing buffer and integer overflows.

What are the main features of google/wuffs?

The main features of google/wuffs are: Safe Parser Generators, Memory-Safe Parser Generators, Safe Implementations, Image Format Decoders, Hermetic Execution Environments, Decompression Implementations, Hermetic Library Compilers, Overflow-Proof Compiler Passes.

What are some open-source alternatives to google/wuffs?

Open-source alternatives to google/wuffs include: madler/zlib — zlib is a lossless data compression library that implements the deflate compression algorithm, combining LZ77 sliding… antlr/antlr4 — ANTLR is a grammar-based code generator and multi-language parser generator used to design and implement custom… pistondevelopers/image — This project is an image processing library designed for manipulating pixel data, applying visual filters, and… google/skia — Skia is a high-performance 2D graphics rendering library used for drawing text, geometries, and images on digital… sixlabors/imagesharp — ImageSharp is a .NET image processing library and manipulation framework used for decoding, encoding, and modifying… nodeca/pako — Pako is a pure JavaScript compression library that ports the C zlib library to JavaScript, providing deflate and gzip…

Open-source alternatives to Wuffs

Similar open-source projects, ranked by how many features they share with Wuffs.
  • madler/zlibmadler avatar

    madler/zlib

    6,687View on GitHub↗

    zlib is a lossless data compression library that implements the deflate compression algorithm, combining LZ77 sliding window and Huffman coding. It provides the core compression and decompression engines, along with support for gzip, zlib, and raw deflate stream formats, enabling data to be compressed and restored without any loss of information. The library offers a range of capabilities for handling compressed data, including single-call memory and file operations, as well as incremental stream-based processing for working with data larger than available memory. It includes mechanisms for a

    C
    View on GitHub↗6,687
  • antlr/antlr4antlr avatar

    antlr/antlr4

    18,928View on GitHub↗

    ANTLR is a grammar-based code generator and multi-language parser generator used to design and implement custom languages. It functions as a toolkit for transforming formal language definitions into executable source code for processing structured text or binary files, while providing a framework for automatically constructing and traversing hierarchical parse trees. The project is distinguished by its ability to generate lexers and parsers in various target programming languages from a single shared grammar definition. It supports grammars containing direct left recursion and utilizes adapti

    Java
    View on GitHub↗18,928
  • google/skiagoogle avatar

    google/skia

    10,762View on GitHub↗

    Skia is a high-performance 2D graphics rendering library used for drawing text, geometries, and images on digital surfaces. It functions as a hardware-accelerated graphics engine that offloads drawing operations to the GPU, a vector graphics processor for SVG and complex paths, and a typography engine for shaping and drawing characters with Unicode support. The project provides a cross-platform image codec for encoding and decoding standard image formats into raw pixel data across multiple operating systems. It also enables the development of user interfaces that maintain visual consistency a

    C++
    View on GitHub↗10,762
  • pistondevelopers/imagePistonDevelopers avatar

    PistonDevelopers/image

    5,805View on GitHub↗

    This project is an image processing library designed for manipulating pixel data, applying visual filters, and adjusting image appearance. It functions as a low-level tool for processing raw pixel buffers and managing image data. The library provides a toolkit for image geometry manipulation, including resizing, cropping, flipping, and rotating images. It also serves as an image format converter for encoding and decoding data between common binary file formats and as a metadata extractor for retrieving dimensions and color profiles from file headers. The capabilities cover low-level image pr

    Rust
    View on GitHub↗5,805
  • See all 30 alternatives to Wuffs→