[{"data":1,"prerenderedAt":253},["ShallowReactive",2],{"repo-dmtrkovalenko-odiff-en":3,"i18n-dmtrkovalenko-odiff-en":250},{"mirrorPool":4,"detail":13,"relatedProjects":158},[5,9],{"key":6,"label":7,"base":8,"type":6},"github","mirror.github","https:\u002F\u002Fgithub.com\u002F",{"key":10,"label":11,"base":12,"type":10},"auto-proxy","mirror.autoProxy","https:\u002F\u002Fgithub.xxlab.tech\u002F",{"owner":14,"repo":15,"repoId":16,"repoUrl":17,"starCount":18,"language":19,"description":20,"languages":21,"screenshots":28,"homepage":29,"pushedAt":30,"ownerAvatar":31,"ownerName":32,"ownerBio":33,"lastSyncTime":34,"lastReleaseTime":35,"tags":36,"license":44,"category":45,"subgroup":46,"releases":47},"dmtrKovalenko","odiff",310022924,"https:\u002F\u002Fgithub.com\u002FdmtrKovalenko\u002Fodiff",3224,"Zig","A very fast SIMD-first image comparison library (with nodejs API)",{"Zig":22,"TypeScript":23,"JavaScript":24,"C":25,"Assembly":26,"Shell":27},68.3,13.6,12.6,2.2,1.9,1.4,[],"","2026-08-24","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F16926049?v=4","Dmitriy Kovalenko","Made some open source you might already be using.\r\n\r\nHave seen some shit in testing software, fast SIMD optimized code and UI components. ","2026-10-04T13:16:16.705083+00:00","2026-07-23T02:36:36Z",[37,38,39,15,40,41,42,43],"diff","hacktoberfest","image-comparison","pixel-perfect","snapshot","testing-tool","visual","MIT","tools","图像处理工具",[48,68,83,96,107,119,134,146],{"tag":49,"publishAt":35,"semVer":50,"prerelease":54,"assets":55},"v4.5.0",[51,52,53],4,5,0,false,[56,62],{"fileName":57,"sizeMb":58,"sha256":59,"downloadCount":60,"originUrl":61},"odiff-windows-arm64.exe",2.59,"8fbc0d41d92ddee7790691a61e175845878824cc3851e9c69fe5d630223897d7",28,"https:\u002F\u002Fgithub.com\u002FdmtrKovalenko\u002Fodiff\u002Freleases\u002Fdownload\u002Fv4.5.0\u002Fodiff-windows-arm64.exe",{"fileName":63,"sizeMb":64,"sha256":65,"downloadCount":66,"originUrl":67},"odiff-windows-x64.exe",3.34,"d2d38dfbdeff70c6d6a2f48ea41c9fe702f866c1f836c6896a677bf97652e4f1",183,"https:\u002F\u002Fgithub.com\u002FdmtrKovalenko\u002Fodiff\u002Freleases\u002Fdownload\u002Fv4.5.0\u002Fodiff-windows-x64.exe",{"tag":69,"publishAt":70,"semVer":71,"prerelease":54,"assets":72},"v4.4.4","2026-07-22T19:46:00Z",[51,51,51],[73,78],{"fileName":57,"sizeMb":74,"sha256":75,"downloadCount":76,"originUrl":77},2.58,"5a7895907c5fdeb5374e18b9430d6492e563dc9929021edc1595b7138999dbe2",2,"https:\u002F\u002Fgithub.com\u002FdmtrKovalenko\u002Fodiff\u002Freleases\u002Fdownload\u002Fv4.4.4\u002Fodiff-windows-arm64.exe",{"fileName":63,"sizeMb":79,"sha256":80,"downloadCount":81,"originUrl":82},3.33,"3c35a81e3bbbf618d4e66165156af861ab1f56064bf1efd9c6e97092324a8113",13,"https:\u002F\u002Fgithub.com\u002FdmtrKovalenko\u002Fodiff\u002Freleases\u002Fdownload\u002Fv4.4.4\u002Fodiff-windows-x64.exe",{"tag":84,"publishAt":85,"semVer":86,"prerelease":54,"assets":88},"v4.4.3-dev.2","2026-07-22T01:52:46Z",[51,51,87],3,[89,92],{"fileName":57,"sizeMb":74,"sha256":90,"downloadCount":87,"originUrl":91},"439772bc1721bc1a9017b98f4b90c7b51ce05debf64a864660b9b0c259c981aa","https:\u002F\u002Fgithub.com\u002FdmtrKovalenko\u002Fodiff\u002Freleases\u002Fdownload\u002Fv4.4.3-dev.2\u002Fodiff-windows-arm64.exe",{"fileName":63,"sizeMb":79,"sha256":93,"downloadCount":94,"originUrl":95},"5487b13d8dbac697676bd91d0a5744e8491e2ebff1b812b1cb187c0d1e7aabbf",7,"https:\u002F\u002Fgithub.com\u002FdmtrKovalenko\u002Fodiff\u002Freleases\u002Fdownload\u002Fv4.4.3-dev.2\u002Fodiff-windows-x64.exe",{"tag":97,"publishAt":98,"semVer":99,"prerelease":54,"assets":100},"v4.4.3-dev.1","2026-07-22T01:02:05Z",[51,51,87],[101,104],{"fileName":57,"sizeMb":74,"sha256":102,"downloadCount":87,"originUrl":103},"be7937f07fdafe15eaf5873a9e706c7d857667f0e787eca40e6acb18076cffcc","https:\u002F\u002Fgithub.com\u002FdmtrKovalenko\u002Fodiff\u002Freleases\u002Fdownload\u002Fv4.4.3-dev.1\u002Fodiff-windows-arm64.exe",{"fileName":63,"sizeMb":79,"sha256":105,"downloadCount":87,"originUrl":106},"94906b6edb0dfc4f1930aa5889938921d7c4349fa33180062d2a962ffae30dcb","https:\u002F\u002Fgithub.com\u002FdmtrKovalenko\u002Fodiff\u002Freleases\u002Fdownload\u002Fv4.4.3-dev.1\u002Fodiff-windows-x64.exe",{"tag":108,"publishAt":109,"semVer":110,"prerelease":54,"assets":111},"v4.4.2","2026-07-21T21:53:10Z",[51,51,76],[112,115],{"fileName":57,"sizeMb":74,"sha256":113,"downloadCount":76,"originUrl":114},"73196366020984aca2fff0a6a675fa978cdbcf1f5cfdacc82dac241b9ed6b91e","https:\u002F\u002Fgithub.com\u002FdmtrKovalenko\u002Fodiff\u002Freleases\u002Fdownload\u002Fv4.4.2\u002Fodiff-windows-arm64.exe",{"fileName":63,"sizeMb":79,"sha256":116,"downloadCount":117,"originUrl":118},"3c6ba41c805258a383ff1b42782c94492d0ceb242e2cda6615e22b37819ed739",6,"https:\u002F\u002Fgithub.com\u002FdmtrKovalenko\u002Fodiff\u002Freleases\u002Fdownload\u002Fv4.4.2\u002Fodiff-windows-x64.exe",{"tag":120,"publishAt":121,"semVer":122,"prerelease":54,"assets":123},"v4.3.2","2025-11-30T19:43:38Z",[51,87,76],[124,129],{"fileName":57,"sizeMb":125,"sha256":126,"downloadCount":127,"originUrl":128},2.37,"8064bab4eb57cd13188b150585ae7841330710ae9ed4f7961b150dcdf1ab31ac",37,"https:\u002F\u002Fgithub.com\u002FdmtrKovalenko\u002Fodiff\u002Freleases\u002Fdownload\u002Fv4.3.2\u002Fodiff-windows-arm64.exe",{"fileName":63,"sizeMb":130,"sha256":131,"downloadCount":132,"originUrl":133},3.04,"30c2e6081efe6a2e3f4a464a7226a940ded781cf65c4e113fd458d463c686c1b",348,"https:\u002F\u002Fgithub.com\u002FdmtrKovalenko\u002Fodiff\u002Freleases\u002Fdownload\u002Fv4.3.2\u002Fodiff-windows-x64.exe",{"tag":135,"publishAt":136,"semVer":137,"prerelease":54,"assets":139},"v4.3.1","2025-11-30T19:37:07Z",[51,87,138],1,[140,143],{"fileName":57,"sizeMb":125,"sha256":141,"downloadCount":51,"originUrl":142},"e4fbe131e578950a007bb40efa5428022b63a41796c32822de3507d6779e12b3","https:\u002F\u002Fgithub.com\u002FdmtrKovalenko\u002Fodiff\u002Freleases\u002Fdownload\u002Fv4.3.1\u002Fodiff-windows-arm64.exe",{"fileName":63,"sizeMb":130,"sha256":144,"downloadCount":81,"originUrl":145},"c3d9bd6da19535036e8fcbc78f595ac262beab7069cdd2d59c5d524a7634d4fc","https:\u002F\u002Fgithub.com\u002FdmtrKovalenko\u002Fodiff\u002Freleases\u002Fdownload\u002Fv4.3.1\u002Fodiff-windows-x64.exe",{"tag":147,"publishAt":148,"semVer":149,"prerelease":54,"assets":150},"v4.3.0","2025-11-30T06:11:53Z",[51,87,53],[151,154],{"fileName":57,"sizeMb":125,"sha256":152,"downloadCount":51,"originUrl":153},"66e1b1bc7394009d92cf441e44549e96bafe71a4855af09d09b48e726caafba2","https:\u002F\u002Fgithub.com\u002FdmtrKovalenko\u002Fodiff\u002Freleases\u002Fdownload\u002Fv4.3.0\u002Fodiff-windows-arm64.exe",{"fileName":63,"sizeMb":130,"sha256":155,"downloadCount":156,"originUrl":157},"1fb111b6f38efe56530498960e69c159eab80ed805ef2b866219cc9f884b9797",9,"https:\u002F\u002Fgithub.com\u002FdmtrKovalenko\u002Fodiff\u002Freleases\u002Fdownload\u002Fv4.3.0\u002Fodiff-windows-x64.exe",[159,184,200,219,231,242],{"owner":160,"repo":161,"repoId":162,"category":163,"subgroup":46,"language":164,"tags":165,"starCount":173,"ownerUid":174,"latestTag":175,"platforms":176,"lastReleaseTime":181,"downloadCount":182,"description":183},"storytold","photocraft",1398080271,"development","Rust",[166,167,168,169,170,171,172],"art","image-editing","image-editing-software","image-editor","images","photo-editing","rust",78940,76897702,"v0.23.1",[177,178,179,180],"windows","mac","linux","other","2026-11-12T05:07:51Z",82958,"PhotoCraft is an open-source desktop image editor written in pure Rust that supports layers, masks, type, vectors, and real PSD files for offline retouching.",{"owner":185,"repo":186,"repoId":187,"category":45,"subgroup":46,"language":188,"tags":189,"starCount":193,"ownerUid":194,"latestTag":195,"platforms":196,"lastReleaseTime":197,"downloadCount":198,"description":199},"danielgatis","rembg",286500101,"Python",[190,191,192],"background-removal","image-processing","python",25364,7380,"v2.0.87",[177],"2026-11-06T01:18:29Z",31,"rembg is an AI-model-powered tool for removing image backgrounds, usable as a CLI, Python library, HTTP server, or Docker container, running local inference to cut out subjects with transparent backgrounds.",{"owner":201,"repo":201,"repoId":202,"category":45,"subgroup":46,"language":203,"tags":204,"starCount":212,"ownerUid":213,"latestTag":214,"platforms":215,"lastReleaseTime":216,"downloadCount":217,"description":218},"ImageMagick",35780977,"C",[205,206,207,208,191,209,210,211],"command-line-image-tool","digital-image-editing","image-conversion","image-manipulation","imagemagick","mastering-digital-image-alchemy","open-source-software",17781,12486768,"7.1.2-35",[177,179,180],"2026-10-31T23:28:18Z",7349,"ImageMagick is a free, open-source image processing suite offering command-line tools and multi-language APIs to create, edit, compose, and convert images on Linux, Windows, and macOS.",{"owner":220,"repo":221,"repoId":222,"category":45,"subgroup":46,"language":203,"tags":223,"starCount":224,"ownerUid":225,"latestTag":226,"platforms":227,"lastReleaseTime":228,"downloadCount":229,"description":230},"darktable-org","darktable",3791835,[],13441,1561544,"nightly",[177,178,179],"2026-11-13T00:48:23Z",107,"darktable is an open-source photography workflow and RAW development application for importing, developing, retouching, and organizing photos on Linux, Windows, and macOS.",{"owner":232,"repo":233,"repoId":234,"category":45,"subgroup":46,"language":235,"tags":236,"starCount":237,"ownerUid":238,"latestTag":29,"platforms":239,"distribution":240,"lastReleaseTime":29,"downloadCount":53,"description":241},"KDE","krita",43975673,"C++",[],10743,14312869,[],"official-site","Krita is an open-source digital painting application for illustration, comics, and concept art, offering a full brush engine and painting tools on Windows, macOS, and Linux.",{"owner":243,"repo":243,"repoId":244,"category":45,"subgroup":46,"language":29,"tags":245,"starCount":246,"ownerUid":247,"latestTag":29,"platforms":248,"distribution":240,"lastReleaseTime":29,"downloadCount":53,"description":249},"photopea",46613660,[],8526,15955558,[],"photopea\u002Fphotopea is the official feedback repository for the Photopea online image editor, collecting bug reports and suggestions; it contains no editor source code and the software runs in the browser.",{"description":251,"readmeHtml":252},"odiff is a very fast image comparison tool that diffs two images visually from the command line or a Node.js API and writes a difference image, making it a fit for visual regression testing on all major platforms.","\u003Ch2 id=\"project-overview\">Project Overview\u003C\u002Fh2>\u003Cp>odiff is an image comparison tool built for speed. It tells you whether two images differ visually and marks where the differences are. It targets highly similar images such as screenshots, photos, and AI-generated pictures, returning results in milliseconds. Now written in Zig with SIMD optimizations, it ships both a command-line tool and a Node.js API, which makes it easy to drop into automated testing and visual regression pipelines.\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Item\u003C\u002Fth>\n\u003Cth>Value\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>Platform\u003C\u002Ftd>\n\u003Ctd>Windows, macOS, Linux\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Type\u003C\u002Ftd>\n\u003Ctd>Image comparison \u002F visual regression\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Usage\u003C\u002Ftd>\n\u003Ctd>Command line + Node.js API\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>License\u003C\u002Ftd>\n\u003Ctd>MIT\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Cblockquote>\n\u003Cp>Find the visual difference between two images in milliseconds.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch2 id=\"key-features\">Key Features\u003C\u002Fh2>\u003Cul>\n\u003Cli>\u003Cstrong>Cross-format comparison\u003C\u002Fstrong>: compare a JPG against a PNG directly, with no need to normalize formats\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Multiple formats\u003C\u002Fstrong>: supports PNG, JPEG, WebP, and TIFF\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Anti-aliasing detection\u003C\u002Fstrong>: recognizes and ignores small pixel differences caused by anti-aliasing\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Ignored regions\u003C\u002Fstrong>: exclude specific regions so fixed-position noise does not affect the verdict\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Visualized differences\u003C\u002Fstrong>: writes a difference image so problems are easy to see\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Perceptual scoring\u003C\u002Fstrong>: computes differences the way human vision does for results that match what you see\u003C\u002Fli>\n\u003Cli>\u003Cstrong>SIMD acceleration\u003C\u002Fstrong>: optimized for SSE2, AVX2, AVX512, and NEON\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Controlled memory footprint\u003C\u002Fstrong>: keeps memory in check on large images, so it fits CI environments\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Server mode\u003C\u002Fstrong>: a long-running server mode avoids the cost of spawning a process per call\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Terminal display\u003C\u002Fstrong>: shows the diff directly in terminals that support the kitty graphics protocol\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"target-audience\">Target Audience\u003C\u002Fh2>\u003Cul>\n\u003Cli>Frontend and test automation engineers\u003C\u002Fli>\n\u003Cli>Visual regression test developers\u003C\u002Fli>\n\u003Cli>Teams doing screenshot comparison and acceptance testing\u003C\u002Fli>\n\u003Cli>Developers scripting bulk image comparisons\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"quick-start\">Quick Start\u003C\u002Fh2>\u003Col>\n\u003Cli>Install odiff with \u003Ccode>npm install odiff-bin\u003C\u002Fcode>, or download the binary for your platform from the release page\u003C\u002Fli>\n\u003Cli>Run \u003Ccode>odiff a.png b.png\u003C\u002Fcode> to compare directly; the result is shown in terminals with graphics protocol support\u003C\u002Fli>\n\u003Cli>Run \u003Ccode>odiff a.png b.png diff.png\u003C\u002Fcode> to write the difference to an image\u003C\u002Fli>\n\u003Cli>Call \u003Ccode>compare()\u003C\u002Fcode> from Node.js to get the match result and the reason\u003C\u002Fli>\n\u003Cli>Wire it into Playwright, Cypress, or similar frameworks for continuous visual checks\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch2 id=\"core-advantages\">Core Advantages\u003C\u002Fh2>\u003Cul>\n\u003Cli>\u003Cstrong>Very fast\u003C\u002Fstrong>: results come back in milliseconds, so large batches stay quick\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Easy to adopt\u003C\u002Fstrong>: a CLI and a Node.js API get you running in minutes\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Matches human perception\u003C\u002Fstrong>: perceptual scoring cuts down false positives\u003C\u002Fli>\n\u003Cli>\u003Cstrong>CI friendly\u003C\u002Fstrong>: its controlled memory use runs reliably inside pipelines\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Simple installation\u003C\u002Fstrong>: one npm command installs it and links the right binary automatically\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"system-requirements\">System Requirements\u003C\u002Fh2>\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Item\u003C\u002Fth>\n\u003Cth>Requirement\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>OS\u003C\u002Ftd>\n\u003Ctd>Windows, macOS, Linux\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Usage\u003C\u002Ftd>\n\u003Ctd>Command-line tool or Node.js\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Supported formats\u003C\u002Ftd>\n\u003Ctd>PNG, JPEG, WebP, TIFF\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Install channel\u003C\u002Ftd>\n\u003Ctd>npm package or release binaries\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Ch2 id=\"notes\">Notes\u003C\u002Fh2>\u003Cul>\n\u003Cli>\u003Cstrong>Diff output must be PNG\u003C\u002Fstrong>: the difference image is always written as PNG, with no other format supported\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Built for similar images\u003C\u002Fstrong>: the tool targets highly similar images, so comparing very different ones says little\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Terminal display has a precondition\u003C\u002Fstrong>: showing the diff inline requires a terminal with kitty graphics protocol support\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Ignored regions need care\u003C\u002Fstrong>: ignoring too many regions can hide real differences\u003C\u002Fli>\n\u003C\u002Ful>\n",1794623967442]