awesome-repositories.com
Blog
MCP
awesome-repositories.com

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

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

google/diff-match-patchArchived

0
View on GitHub↗
8,065 stars·1,178 forks·Python·apache-2.0·18 views

Diff Match Patch

This is a text diffing and patching library used for computing differences between text blocks, calculating edit distances, and applying patches to synchronize document versions. It includes a fuzzy text matching engine to locate strings by balancing accuracy with location, and a Levenshtein distance calculator to measure the number of character insertions, deletions, and substitutions between two strings.

The library features a semantic diff optimizer that refines raw text differences to align with human-readable word and phrase boundaries. It provides utilities for generating and parsing serialized patches, allowing structural differences to be stored or transmitted and then applied to documents using a best-effort strategy to handle source offsets.

The project covers a broad range of text manipulation capabilities, including text comparison, difference computation, and pattern matching. These tools enable the measurement of edit distance and the synchronization of plain text versions through the application of optimized difference sets.

Features

  • Text Diffing and Patching Libraries - A comprehensive library for computing differences between text blocks and applying patches to synchronize document versions.
  • Text Patching - Provides a comprehensive system for synchronizing document versions through the application of serialized patches.
  • Multi-File Patch Synchronization - Synchronizes documents by applying a series of changes while accounting for shifts in the source text.
  • Text File Comparison - Identifies specific additions and deletions required to transform one block of plain text into another.
  • Text Difference Computation - Determines exactly which characters or words were added, removed, or modified between two versions of text.
  • Semantic Boundary Alignment - Post-processes raw character differences to group changes into logical word and phrase boundaries for humans.
  • Human-Readable Diffing - Refines raw text differences to align with word boundaries and phrase blocks for better human readability.
  • Edit Distance Calculators - Calculates the Levenshtein distance between two strings based on insertions, deletions, and substitutions.
  • Diff Algorithms - Implements the Myers diff algorithm to compute the shortest edit script between two text blocks.
  • Patch Generators - Encodes structural text differences into a standardized string format for storage and transmission.
  • Patch Application - Provides utilities to apply patches to text blocks using a best-effort strategy to handle shifts in the source content.
  • Patch Parsing - Converts textual diff formats back into machine-readable patches to apply changes to documents.
  • Semantic Diff Optimizers - Routines that refine raw text differences to align with human-readable word and phrase boundaries.
  • Fuzzy Matching - Provides a search utility that balances accuracy and location to find the best fuzzy match for a string.
  • Location-Weighted Matching - Locates text patterns by balancing character accuracy with proximity to a target index for more precise matching.
  • Text Pattern Matching - Locates exact or fuzzy matches of specific text strings within larger bodies of plain text.
  • Bit-Parallel Implementations - Implements a bit-vector approach to significantly accelerate Levenshtein distance calculations across text strings.
  • Difference Set Optimization - Optimizes difference sets by removing coincidental matches to improve human readability and machine efficiency.
  • Semantic Grouping - Groups fragmented text changes into human-readable blocks to make raw differences more intuitive.
  • Semantic Refinement - Refines raw text differences to ensure they align with natural human-readable word and phrase boundaries.
  • Miscellaneous Utilities - Algorithms for synchronizing and merging plain text.

Star history

Star history chart for google/diff-match-patchStar history chart for google/diff-match-patch

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

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/diff-match-patch do?

This is a text diffing and patching library used for computing differences between text blocks, calculating edit distances, and applying patches to synchronize document versions. It includes a fuzzy text matching engine to locate strings by balancing accuracy with location, and a Levenshtein distance calculator to measure the number of character insertions, deletions, and substitutions between two strings.

What are the main features of google/diff-match-patch?

The main features of google/diff-match-patch are: Text Diffing and Patching Libraries, Text Patching, Multi-File Patch Synchronization, Text File Comparison, Text Difference Computation, Semantic Boundary Alignment, Human-Readable Diffing, Edit Distance Calculators.

Which projects share features with google/diff-match-patch?

Projects with overlapping indexed features include: java-diff-utils/java-diff-utils — Java Diff Utils is a library for computing text differences, generating unified diffs, parsing patches, and applying… rapidfuzz/rapidfuzz — RapidFuzz is a C++ accelerated Python library providing high-performance string comparison and similarity… maxbachmann/rapidfuzz — This is a Python fuzzy string matching library used for calculating string similarity and edit distances. It serves as… sebastianbergmann/diff — This is a sequence comparison library and text difference engine that implements the Myers diff algorithm to identify… winmerge/winmerge — WinMerge is a visual file comparison and merge tool used to identify and synchronize differences between text files,… seatgeek/fuzzywuzzy — Fuzzywuzzy is a Python library and text processing utility designed to calculate similarity scores between strings. It…

Projects sharing features with Diff Match Patch

These projects share indexed features with Diff Match Patch. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • java-diff-utils/java-diff-utilsjava-diff-utils avatar

    java-diff-utils/java-diff-utils

    1,536View on GitHub↗

    Java Diff Utils is a library for computing text differences, generating unified diffs, parsing patches, and applying changes to data in Java applications. It functions as a utility for comparing text sequences, calculating additions and deletions, and generating structured difference comparisons, while also acting as a patch generation library for creating, parsing, and applying standard unified patches to synchronize and update text content. The library calculates the shortest edit script between two sequences using dynamic programming to identify optimal additions, deletions, and modificati

    Javacomputing-diffsdiffdiff-algorithm
    View on GitHub↗1,536
  • maxbachmann/rapidfuzzmaxbachmann avatar

    maxbachmann/rapidfuzz

    3,958View on GitHub↗

    This is a Python fuzzy string matching library used for calculating string similarity and edit distances. It serves as a collection of string distance algorithms, a sequence alignment tool, and an approximate string search engine to measure text similarity. The library provides a wide array of metrics to quantify string closeness, including Levenshtein, Jaro-Winkler, Hamming, and Damerau-Levenshtein distances. It supports similarity analysis through longest common subsequence calculations, token-based comparisons, and weighted scoring to account for differences in content and word order. Bey

    Python
    View on GitHub↗3,958
  • rapidfuzz/rapidfuzzrapidfuzz avatar

    rapidfuzz/RapidFuzz

    3,731View on GitHub↗

    RapidFuzz is a C++ accelerated Python library providing high-performance string comparison and similarity calculations. It functions as a fuzzy string matching toolkit used to quantify the difference between text sequences through Levenshtein distance and other edit distance metrics. The library focuses on scalable approximate text matching, enabling the identification and ranking of similar strings within large datasets. It provides specialized utilities for finding the best matches in a collection and generating pairwise similarity matrices. The project covers a broad surface of text proce

    Pythoncpplevenshteinlevenshtein-distance
    View on GitHub↗3,731
  • sebastianbergmann/diffsebastianbergmann avatar

    sebastianbergmann/diff

    7,663View on GitHub↗

    This is a sequence comparison library and text difference engine that implements the Myers diff algorithm to identify additions and deletions between two sequences of text or arrays. It functions as a tool for calculating the shortest edit script to determine exactly which elements were modified between two versions of a file. The project provides a unified diff generator to produce standard textual representations of changes for human review, as well as a unified diff parser that converts these strings into structured objects for programmatic analysis. The engine treats text inputs as array

    PHP
    View on GitHub↗7,663
Compare all 30 related projects→