# DiffX — Next-Generation Extensible Diff Format **Website:** https://diffx.org **Status:** In development / used in production If you’re a software developer, you’ve probably worked with diff files. Git diffs, Subversion diffs, CVS diffs.. Some kind of diff. You probably haven’t given it a second thought, really. You make some changes, run a command, a diff comes out. Maybe you hand it to someone, or apply it elsewhere, or put it up for review. Diff files show the differences between two text files, in the form of inserted (`+`) and deleted (`-`) lines. Along with this, they contain some basic information used to identify the file (usually just the name/relative path within some part of the tree), maybe a timestamp or revision, and maybe some other information. ## What most people don't know There isn't a standard diff format. We do have [[Unified Diffs]], but this only describes the changes made within a section of a file. It doesn't describe _anything else_. Instead, Git, Subversion, and other SCMs introduce their own custom bespoke diff format. They're not compatible, and they all differ (pun intended) in how you parse them. And many don't have *any* format *at all!* No useful diff format to work with. None. If you write tools that need to work with all these diff formats (like [[Review Board]]), you need to write a special diff parser for every single format, working with every format's unique quirks. ## Why we made DiffX DiffX was designed as standard way to store and parse diff content, with clear parsing rules that avoid many of the issues that are common in bespoke diff formats and a common way of working with metadata. Unlike all other diff formats, these are mutable. They address encoding issues common in other formats. They can store arbitrary metadata. They can represent commits. And they're backwards-compatible with existing diff parsers and patchers. The kind of problems we're addressing are incredibly niche but incredibly important for tools that work with diffs. Most people would never be exposed to the kind of problems we have to solve, which is part of why these problems have not been solved. So we're working to solve it. There's a lot more to say here, so check out the [DiffX.org](https://diffx.org) website.