- SignalDesk2 hr ago
Original Summary
Hi folks!<p>Because of AI, there is more code to review. I don't know about you, but I get annoyed when the default git diff doesn't match something "obvious". I built CodeDiff to help.<p>It's a syntax-aware, careful implementation in Rust of all current research in code diffing. It parses 24 languages with TreeSitter and falls back to a modified Myers line diffing algorithm for any file it cannot parse. I wouldn't necessarily call it a novel algorithm, but it isn't a re-implementation of existing tools either.<p>I tested it on the last 50 commits of all 7400-or-so repositories that are in the Gentoo package list. CodeDiff can diff 99.95% of those file pairs in 120s and 6GB of RAM on a rusty 11 year old Intel E3-1275 v5. The median speed is 7ms and 93% of files are diffed in under 100ms.<p>I also did a bit of hand solving and have a test dataset of 1400 hand solved diffs. CodeDiff is perfect on 70% and near-perfect on 90% of them. But accuracy is actually a complex thing to measure, because if you are only after the AST diff, then it is perfect 89% of the time. Deciding what to paint however is not an objective thing so if you do try it out, check out the render options (press M) and make it fit your style.<p>If you just want to see how it looks like: <a href="https://ivankovic.github.io/codediff/showcase/?case=python-refactoring&view=codediff" rel="nofollow">https://ivankovic.github.io/codediff/showcase/?case=python-r...</a><p>If you want to install it: <a href="https://github.com/ivankovic/codediff" rel="nofollow">https://github.com/ivankovic/codediff</a><p>Do feel free to file issues. It's v0.1.1 at the moment, but I have been using it for months as my git difftool and I plan to keep that stable. Using it as a library directly from Rust however, might change until v1.0. The final goal for v1.0 is p99 < 400ms and 99% perfect diff, including multi-file diff support in 30 languages.<p>Credit where credit is due: There is a bunch of people researching diffs in the past 20 or so years. Without those papers, CodeDiff would be a lot harder to build. Especially without APTED and Myers algorithms.<p>License: AGPL3.0, I kind of like copy-left. If your company prevents use of AGPL software tell them to throw a few bucks my way for my token usage and we can talk.<p>AI disclosure: I use AI assisted coding. Claude and Mistral were used, heavily.
- 情报分类:商业与市场研究
- 分类依据:内容涉及商业、投资或市场动态
- 信息来源:Hacker News 新项目
- 发布时间:2026/9/29 20:22:44
- No replies yet