diff - A library for diffing golang structures

  •        259

A library for diffing golang structures and values. Utilizing field tags and reflection, it is able to compare two structures of the same type and create a changelog of all modified values. The produced changelog can easily be serialized to json.

https://github.com/r3labs/diff

Tags
Implementation
License
Platform

   




Related Projects

diffy - Easy Diffing in Ruby

  •    Ruby

Need diffs in your ruby app? Diffy has you covered. It provides a convenient way to generate a diff from two strings or files. Instead of reimplementing the LCS diff algorithm Diffy uses battle tested Unix diff to generate diffs, and focuses on providing a convenient interface, and getting out of your way. It provides several built in format options which can be passed to Diffy::Diff#to_s.

DiffPlex - a .NET Diff Generator

  •    CSharp

DiffPlex is a combination of a .NET Diffing Library with both a Silverlight and HTML diff viewer.

happo - Visual diffing in CI for user interfaces

  •    Javascript

Happo is a command-line tool to visually diff user interfaces. Read more. You will also want to install a target plugin and an uploader plugin.

nbdime - Tools for diffing and merging of Jupyter notebooks.

  •    Python

nbdime provides tools for diffing and merging of Jupyter Notebooks. See the installation docs for more installation details and development installation instructions.

multidiff - Binary data diffing for multiple objects or streams of data

  •    Python

It's purpose is to make machine friendly data easier to understand by humans that are looking at it. Specifically multidiff helps in viewing the differences within a large set of objects by doing diffs between relevant objects and displaying them in a sensible manner. This kind of visualization is handy when looking for patterns and structure in proprietary protocols or weird file formats. The obvious use-cases are reverse engineering and binary data analysis. At the core of multidiff is the python difflib library and multidiff wraps it in data providing mechanisms and visualization code. The visualization is the most important part of the project and everything else is just utilities to make it easier to feed data for the visualizer. At this time the tool can do basic format parsing such as hex decoding, hexdumping, and handling data as utf8 strings, as well as read from files, stdin, and sockets. Any preprocessing such as cropping, indenting, decompression, etc. will have be done by the user before the objects are provided to multidiff.


snapshot-diff - Diffing snapshot utility for Jest

  •    Javascript

Diffing snapshot utility for Jest. Takes two values, and return their difference as a string, ready to be snapshotted with toMatchSnapshot(). Especially helpful when testing the difference between different React component states.

diffuse - Diffuse is a tool for diffing APKs, AABs, AARs, and JARs

  •    Kotlin

Diffuse is a tool for diffing APKs, AABs, AARs, and JARs in a way that aims to provide both a high-level view of what changes along with important detailed output. diffuse has multiple subcommands. The primary one is diff which takes two binaries and displays a summary and detailed listing of changes between them.

spaceman-diff - diff images from the command line

  •    Shell

spaceman-diff is a quick drop in to git-diff. The idea is that you can just git diff like normal and, if you've changed an image file, spaceman-diff will render your images in a colorful ASCII approximation in your shell along with helpful data like file size changes. The goal is that spaceman-diff gives you a quick way of verifying that yes, the image you're committing is the image you want to commit, and yes, the image you're committing isn't accidentally 20 terabytes in size or something foolish like that.

Mergely - Web Application to View and Merge Changes in Documents

  •    Javascript

Mergely is a web application to view and merge changes in documents. Mergely shows you changes to documents side-by-side so you can clearly see what changed from one version to the next. It can be used as a diff tool (read-only) or as both a diff and merge tool for plain text, CSS, HTML, XML, javascript, PHP, C, C++, etc.

N-way Folder Diff

  •    Java

N-way Folder Diff is a simple, platform independent tool to compare multiple folders. It differs from usual diff tools because it is possible to do n-way (upto 10 way) diff as compared to the usual 2-way diff.

container-diff - container-diff: Diff your Docker containers

  •    Go

These analyses can be performed on a single image, or a diff can be performed on two images to compare. The tool can help users better understand what is changing inside their images, and give them a better look at what their images contain. By default, with no --type flag specified, container-diff will run Apt package analysis.

diff - Javascript utility for calculating deep difference, capturing changes, and applying changes across objects; for nodejs and the browser

  •    Javascript

deep-diff is a javascript/node.js module providing utility functions for determining the structural differences between objects and includes some utilities for applying differences across objects. In a browser, deep-diff defines a global variable DeepDiff. If there is a conflict in the global namespace you can restore the conflicting definition and assign deep-diff to another variable like this: var deep = DeepDiff.noConflict();.

diff-so-fancy - Good-lookin' diffs. Actually… nah… The best-lookin' diffs. :tada:

  •    Perl

diff-so-fancy strives to make your diff's human readable instead of machine readable. This helps improve code quality and help you spot defects faster. Installation is as simple as downloading the diff-so-fancy script to a directory in your path. Windows users may need to install the Windows subsystem for Linux.

rn-diff-purge - Easier React Native upgrades by clearly exposing changes from a version to another

  •    Shell

This repository exposes an untouched React Native app generated with the CLI npx react-native init RnDiffApp. Each new React Native release causes a new project to be created, removing the old one, and getting a diff between them. This way, the diff is always clean, always in sync with the changes of the init template. See table below for the complete list.

Meld - Visual Diff and Merge Tool

  •    Python

Meld is a gnome2 diff and merge tool with pluggable support for version control systems such as cvs, subversion, bzr, darcs, mercurial, monotone, tla. Meld helps you review code changes and understand patches.

External diff Tool (Eclipse Plugin)

  •    Java

External diff Tool is an Eclipse plugin that allows the launch of an external diff tool for file compares rather than the default built-in Eclipse diff tool. This plugin doesn't replace the built-in Eclipse tool. It only adds a new menu item to the GUI.

Delta - code inspection and diff tool

  •    Perl

A source code diff tool. Adapted from cvsweb, it makes code inspection easy. It also provides another diff tool with which you can either compare two files or two directories recursively. It is written in perl and uses String::Ediff for finer diff.

container-diff - container-diff: Diff your Docker containers

  •    Go

container-diff supports Docker images located in both a local Docker daemon and a remote registry. To explicitly specify a local image, use the daemon:// prefix on the image name; similarly, for an explicitly remote image, use the remote:// prefix.

meta-diff

  •    C++

A diff utility that determines a file's type and automatically calls another diff program suited to that file. This page is also the home of LVDiff, a command-line program that launches LabVIEW's built-in diff utility.






We have large collection of open source products. Follow the tags from Tag Cloud >>


Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.