<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/nyuu-page-ey4ljpxee" -->

---
title: nyuu.page | daily.dev
description: slap is a FOSS, multiplatform ROM patcher written in Haskell and Rust, available as both a CLI tool and a web app. It supports 20 patch formats and six...
canonical: https://daily.dev/posts/nyuu-page-ey4ljpxee
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: nyuu.page | daily.dev
og:description: slap is a FOSS, multiplatform ROM patcher written in Haskell and Rust, available as both a CLI tool and a web app. It supports 20 patch formats and six...
og:url: https://daily.dev/posts/nyuu-page-ey4ljpxee
og:image: https://api.daily.dev/og/posts/EY4ljpXEe.png
og:image:alt: nyuu.page
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# nyuu.page

**[Hacker News](https://daily.dev/sources/hn)** · 12 min read · 1 upvotes · 0 comments

## Summary

slap is a FOSS, multiplatform ROM patcher written in Haskell and Rust, available as both a CLI tool and a web app. It supports 20 patch formats and six operations: apply, create, undo, convert, explain, and info. The project emphasizes correctness across edge cases in each format's spec, structured error reporting, and UTF-8 text handling. Benchmarks compare slap against reference tools across file sizes from 4MiB to 520MiB, showing competitive or faster performance in most creation scenarios and comparable application speeds, with notably smaller patch sizes in several formats.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://nyuu.page/projects/slap>

## Questions this post answers

### What rom patch formats does slap support and what languages is it written in?

Slap supports around twenty rom patch formats including IPS, IPS32, UPS, BPS, PPF3, NINJA1, NINJA2, GDIFF, xdelta1, xdelta3, and more. It is written in Haskell and Rust, ships as a CLI tool and a web version, and provides six operations: apply, create, undo, convert, explain, and info.

_Developers comparing rom-patching tools can track new format support and benchmarks like these on daily.dev._

### How does slap's patching speed compare to reference tools like flips, bsdiff, and xdelta on large files?

Slap performs competitively across most formats; for bsdiff at 520MiB, slap creates a patch in 3.57s versus 15+ seconds for reference bsdiff, and its bps creation is also much faster than flips at large sizes. On application, slap loses more often, with gaps of tens of milliseconds at cartridge-sized files, though it remains close to or faster than most reference appliers.

_Anyone weighing rom-patcher tool choices can compare benchmark numbers like these on daily.dev before picking one._

### How does slap handle malformed or ambiguous rom patch files?

Slap assumes nothing about a patch's validity and provides structured errors, warnings, and observations for anything malformed or surprising, stating exactly what and where the issue is. For text metadata, it outputs UTF-8, escapes unprintable codepoints, and substitutes U+FFFD with a warning for undecodable byte sequences rather than silently failing.

_Developers building robust file-format parsers can reference edge-case handling approaches like this via daily.dev._

## Similar posts on daily.dev

- [Slap: Fun Cat Lang... with a Borrow Checker?](https://daily.dev/posts/slap-fun-cat-lang-with-a-borrow-checker--eowblwujq) · Lobsters · 0 upvotes · 0 comments
- [Software patches in NixOS for fun and productivity](https://daily.dev/posts/software-patches-in-nixos-for-fun-and-productivity-jsc5pbrgr) · Lobsters · 5 upvotes · 0 comments
- [stoolap/stoolap: A Modern Embedded SQL Database written in Rust](https://daily.dev/posts/stoolap-stoolap-a-modern-embedded-sql-database-written-in-rust-u3lyacuxa) · Hacker News · 13 upvotes · 0 comments
- [There's no Linux on my Raspberry Pi anymore — it boots straight into a local LLM instead](https://daily.dev/posts/there-s-no-linux-on-my-raspberry-pi-anymore-it-boots-straight-into-a-local-llm-instead-wel5wley5) · XDA Developers · 0 upvotes · 0 comments

---

Tags: [#rust](https://daily.dev/tags/rust), [#cli](https://daily.dev/tags/cli), [#webassembly](https://daily.dev/tags/webassembly), [#haskell](https://daily.dev/tags/haskell)

[View this post on daily.dev](https://daily.dev/posts/nyuu-page-ey4ljpxee)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"nyuu.page","url":"https://daily.dev/posts/nyuu-page-ey4ljpxee","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/nyuu-page-ey4ljpxee"},"datePublished":"2026-08-10T11:04:30.486Z","dateModified":"2026-09-14T07:06:10.636Z","description":"slap is a FOSS, multiplatform ROM patcher written in Haskell and Rust, available as both a CLI tool and a web app. It supports 20 patch formats and six...","image":"https://media.daily.dev/image/upload/s--1KxV4ohY--/f_auto/v1722860400/public/Placeholder%2007","thumbnailUrl":"https://media.daily.dev/image/upload/s--1KxV4ohY--/f_auto/v1722860400/public/Placeholder%2007","isAccessibleForFree":true,"articleSection":"Hacker News","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Hacker News","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn","url":"https://daily.dev/sources/hn"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/nyuu-page-ey4ljpxee","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"rust,cli,webassembly,haskell","timeRequired":"PT12M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Hacker News","item":"https://daily.dev/sources/hn"},{"@type":"ListItem","position":3,"name":"nyuu.page"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/nyuu-page-ey4ljpxee#faq","mainEntity":[{"@type":"Question","name":"What rom patch formats does slap support and what languages is it written in?","acceptedAnswer":{"@type":"Answer","text":"Slap supports around twenty rom patch formats including IPS, IPS32, UPS, BPS, PPF3, NINJA1, NINJA2, GDIFF, xdelta1, xdelta3, and more. It is written in Haskell and Rust, ships as a CLI tool and a web version, and provides six operations: apply, create, undo, convert, explain, and info. Developers comparing rom-patching tools can track new format support and benchmarks like these on daily.dev."}},{"@type":"Question","name":"How does slap's patching speed compare to reference tools like flips, bsdiff, and xdelta on large files?","acceptedAnswer":{"@type":"Answer","text":"Slap performs competitively across most formats; for bsdiff at 520MiB, slap creates a patch in 3.57s versus 15+ seconds for reference bsdiff, and its bps creation is also much faster than flips at large sizes. On application, slap loses more often, with gaps of tens of milliseconds at cartridge-sized files, though it remains close to or faster than most reference appliers. Anyone weighing rom-patcher tool choices can compare benchmark numbers like these on daily.dev before picking one."}},{"@type":"Question","name":"How does slap handle malformed or ambiguous rom patch files?","acceptedAnswer":{"@type":"Answer","text":"Slap assumes nothing about a patch's validity and provides structured errors, warnings, and observations for anything malformed or surprising, stating exactly what and where the issue is. For text metadata, it outputs UTF-8, escapes unprintable codepoints, and substitutes U+FFFD with a warning for undecodable byte sequences rather than silently failing. Developers building robust file-format parsers can reference edge-case handling approaches like this via daily.dev."}}]}
```

