10 रिपॉजिटरी
Logic and methods for calculating differences between data structures or code representations.
Distinguishing note: Focuses on the algorithmic approach to diffing, specifically handling data ordering and tree complexity.
Explore 10 awesome GitHub repositories matching software engineering & architecture · Diffing Algorithms. Refine with filters or upvote what's useful.
Identifies and reports changes in data ordering as meaningful structural differences.
Dolt is a relational database engine that integrates version control directly into the database management layer. It functions as a version-controlled SQL database that tracks every row and schema change using a commit-based history, allowing users to branch, merge, and audit data modifications. By implementing a wire-protocol-compatible server, the system enables standard SQL clients and tools to interact with versioned data as if they were connecting to a traditional relational database. The platform distinguishes itself by applying repository-style workflows to data management, including s
Calculates structural and row-level differences by traversing the underlying data tree regardless of the specific table schema.
Million is a framework-level enhancement designed to optimize the performance of user interfaces by reducing overhead in component reconciliation. It functions as a build-time compiler that transforms components into lightweight, efficient code to accelerate rendering and minimize the runtime work required for interface updates. The project distinguishes itself by replacing standard reconciliation logic with a specialized virtual DOM implementation. Through static analysis and a build-step utility, it identifies and optimizes component trees, allowing for granular updates that target only mod
Applies targeted heuristic algorithms to identify only modified branches of the UI tree.
Inferno is a virtual DOM UI library and high-performance DOM renderer used for building component-based user interfaces. It functions as a server-side rendering engine and a client-side framework that synchronizes application state with the visual interface through a declarative structure. The project distinguishes itself as a React-compatible UI framework, providing a compatibility layer that allows components designed for other reactive environments to run without modification. Its capability surface covers virtual DOM management, including node diffing and reconciliation, and a full serve
Optimizes rendering speed by predefining child node shapes at compile time to bypass runtime normalization.
Primitive is an algorithmic art generator and geometric image reconstruction tool that transforms raster images into stylized vector compositions. It functions as an iterative shape optimizer and raster-to-vector converter, approximating pixel-based photos by layering geometric primitives such as triangles, circles, and rectangles. The project utilizes a search algorithm to determine the optimal position, size, and color for each shape to minimize the visual difference from the source image. Users can apply shape constraint definitions to control the properties and orientations of the geometr
Implements an iterative search algorithm to optimize the placement and color of primitives against a target image.
IGListKit is a data-driven list manager and framework for iOS that decouples data models from cell logic. It serves as a wrapper for collection views, using a system of section controllers to map specific data model types to independent objects that manage the logic and sizing for list sections. The project features a diffing algorithm library that calculates the minimal set of changes between two data collections. By using unique identifiers and equality tracking, it identifies inserts, deletes, and moves to trigger animated updates instead of full interface reloads. The framework covers a
Implements a high-performance linear-time algorithm to identify inserts, deletes, and moves between datasets.
jsdiff is a JavaScript text diffing library and comparison engine used to compute differences between strings or arrays. It identifies additions and removals between blocks of text and provides a system for generating and applying formatted Unix-style patches. The toolkit functions as a customizable token differ, allowing for the comparison of arbitrary token sequences using user-defined equality and tokenization rules. This enables the creation of specialized comparison tools for non-standard text or data formats. Comparison capabilities are available at the character, word, and line levels
Provides interfaces for establishing custom identity and equality rules to control diffing behavior.
Atlas is a SQL database schema management tool and database infrastructure as code framework. It provides a declarative database migration engine that computes the difference between a desired schema state and the current database state to automatically generate the necessary SQL for transitions. The project distinguishes itself through a comprehensive suite of analysis and visualization tools, including a database schema linter that detects destructive changes and data loss risks. It also features a SQL schema visualization tool capable of generating entity-relationship diagrams from extract
Customizes the diff engine to handle specific database operations, such as concurrent index creation.
Dagre is a pure JavaScript library for automatically laying out directed graphs. It implements a layered graph drawing algorithm based on the Sugiyama framework, positioning nodes in horizontal layers and routing edges to produce clear, readable visualizations with no native dependencies. The library handles edge routing as polylines with control points to avoid overlapping nodes, reduces edge crossings through heuristic node ordering within layers, and assigns final coordinates using a slack-based approach that respects minimum separation constraints. Graph structure and layout options are e
Uses barycenter heuristics to minimize edge crossings in layered graph layouts.
This project is a library of standardized specifications and templates for managing version control attributes, line ending normalization, and language-aware diff strategies. It provides a framework for defining how a version control system treats specific file extensions to ensure cross-platform consistency and prevent file corruption. The project distinguishes itself by offering a comprehensive configuration library for managing binary files, diff drivers, and repository metadata. It includes specialized diff strategy management and a repository metadata standard that maps custom file exten
A set of language-specific diffing and merge strategies for Ruby projects to ensure consistent version control behavior across files.