PHPackages                             biserg/gendiff - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. biserg/gendiff

ActiveLibrary[CLI &amp; Console](/categories/cli)

biserg/gendiff
==============

Gendiff - CLI, Hexlet education project

2.0(5y ago)081PHP

Since Sep 14Pushed 5y ago1 watchersCompare

[ Source](https://github.com/IgBuS/php-project-lvl2)[ Packagist](https://packagist.org/packages/biserg/gendiff)[ RSS](/packages/biserg-gendiff/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (5)Dependencies (5)Versions (6)Used By (0)

[![](https://camo.githubusercontent.com/e290045b517a8d7f0b336025ac88f19be7e72bd39d58ba35cde10635af8aa6bf/68747470733a2f2f6170692e636f6465636c696d6174652e636f6d2f76312f6261646765732f62336566383337306135663365353035376664662f6d61696e7461696e6162696c697479)](https://codeclimate.com/github/IgBuS/php-project-lvl2/maintainability)

[![](https://camo.githubusercontent.com/3890d5e39a358e21fdef742307a32f7c985fbf9313b57f1c206b3c8ab277eae8/68747470733a2f2f6170692e636f6465636c696d6174652e636f6d2f76312f6261646765732f62336566383337306135663365353035376664662f746573745f636f766572616765)](https://codeclimate.com/github/IgBuS/php-project-lvl2/test_coverage)

[![CI](https://github.com/IgBuS/php-project-lvl2/workflows/CI/badge.svg)](https://github.com/IgBuS/php-project-lvl2/workflows/CI/badge.svg)

GenDiff
=======

[](#gendiff)

This app was created to help you find out the difference between two versions of file or two same type files. You are able to use it with .json or .yaml files. Also you can choose format of difference presentation. For example:

basic ('pretty') format
-----------------------

[](#basic-pretty-format)

```
{
  - follow: false
    host: hexlet.io
  - proxy: 123.234.53.22
  - timeout: 50
  + timeout: 20
  + verbose: true
}
```

plain format
------------

[](#plain-format)

```
Property 'common.follow' was added with value: false
Property 'common.setting2' was removed
Property 'common.setting3' was updated. From true to [complex value]
Property 'common.setting4' was added with value: 'blah blah'
Property 'common.setting5' was added with value: [complex value]
Property 'common.setting6.doge.wow' was updated. From 'too much' to 'so much'
Property 'common.setting6.ops' was added with value: 'vops'
Property 'group1.baz' was updated. From 'bas' to 'bars'
Property 'group1.nest' was updated. From [complex value] to 'str'
Property 'group2' was removed
Property 'group3' was added with value: [complex value]
```

json format
-----------

[](#json-format)

```
[{"type":"parent","key":"common","children":[{"type":"unchanged","key":"setting1","value":"Value 1"},{"type":"deleted","key":"setting2","value":200},{"type":"changed","key":"setting3","oldValue":true,"newValue":{"key":"value"}},{"type":"parent","key":"setting6","children":[{"type":"unchanged","key":"key","value":"value"},{"type":"parent","key":"doge","children":[{"type":"changed","key":"wow","oldValue":"too much","newValue":"so much"}]},{"type":"added","key":"ops","value":"vops"}]},{"type":"added","key":"follow","value":false},{"type":"added","key":"setting4","value":"blah blah"},{"type":"added","key":"setting5","value":{"key5":"value5"}}]},{"type":"parent","key":"group1","children":[{"type":"changed","key":"baz","oldValue":"bas","newValue":"bars"},{"type":"unchanged","key":"foo","value":"bar"},{"type":"changed","key":"nest","oldValue":{"key":"value"},"newValue":"str"}]},{"type":"deleted","key":"group2","value":{"abc":12345,"deep":{"id":45}}},{"type":"added","key":"group3","value":{"fee":100500,"deep":{"id":{"number":45}}}}]
```

Gendiff app is avaliable fo nested structures.

Setup
-----

[](#setup)

```
$ git clone https://github.com/IgBuS/php-project-lvl2.git

$ make install
```

If you use Composer, for package install use:

```
$ composer require biserg/gendiff
```

If you want app to be available globally, use global installation:

```
$ composer global require biserg/gendiff
```

How to run
----------

[](#how-to-run)

Local installation: (you have to be in package bin directory)

```
$ php gendiff
```

Global installation:

```
$ gendiff
```

Result video
------------

[](#result-video)

[![asciicast](https://camo.githubusercontent.com/7369b91c3d48632d04c075929de3b3b7589e7f26e29b2725c90ae3392caa9733/68747470733a2f2f61736369696e656d612e6f72672f612f49694c45716c514a57396e594462713533686d5044416162792e737667)](https://asciinema.org/a/IiLEqlQJW9nYDbq53hmPDAaby)

###  Health Score

25

—

LowBetter than 35% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~11 days

Total

5

Last Release

2076d ago

Major Versions

1.3 → 2.02020-10-27

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/76394065?v=4)[IggyBis](/maintainers/IggyBis)[@Iggybis](https://github.com/Iggybis)

---

Top Contributors

[![IgBuS](https://avatars.githubusercontent.com/u/67070275?v=4)](https://github.com/IgBuS "IgBuS (3 commits)")

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/biserg-gendiff/health.svg)

```
[![Health](https://phpackages.com/badges/biserg-gendiff/health.svg)](https://phpackages.com/packages/biserg-gendiff)
```

###  Alternatives

[drush/drush

Drush is a command line shell and scripting interface for Drupal, a veritable Swiss Army knife designed to make life easier for those of us who spend some of our working hours hacking away at the command prompt.

2.4k60.6M803](/packages/drush-drush)[tempest/framework

The PHP framework that gets out of your way.

2.2k34.4k15](/packages/tempest-framework)[jolicode/castor

A lightweight and modern task runner. Automate everything. In PHP.

54743.1k4](/packages/jolicode-castor)[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

1189.8k](/packages/rcsofttech-audit-trail-bundle)[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103519.9k53](/packages/friendsoftypo3-content-blocks)[whatsdiff/whatsdiff

See what's changed in your project's dependencies

771.2k](/packages/whatsdiff-whatsdiff)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
