{"id":22797983,"url":"https://github.com/6bee/aqua-graphcompare","last_synced_at":"2026-04-06T03:05:09.101Z","repository":{"id":35369908,"uuid":"39632862","full_name":"6bee/aqua-graphcompare","owner":"6bee","description":"Comparer for arbitrary object graphs","archived":false,"fork":false,"pushed_at":"2024-07-10T13:44:26.000Z","size":1194,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-29T09:12:17.267Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/6bee.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-07-24T12:49:34.000Z","updated_at":"2024-07-10T13:44:29.000Z","dependencies_parsed_at":"2024-06-14T13:58:33.827Z","dependency_job_id":"5a48f26c-6eb6-4e4d-abe7-28e7543db181","html_url":"https://github.com/6bee/aqua-graphcompare","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/6bee%2Faqua-graphcompare","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/6bee%2Faqua-graphcompare/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/6bee%2Faqua-graphcompare/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/6bee%2Faqua-graphcompare/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/6bee","download_url":"https://codeload.github.com/6bee/aqua-graphcompare/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249723818,"owners_count":21316115,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-12T06:07:50.070Z","updated_at":"2026-04-06T03:05:09.006Z","avatar_url":"https://github.com/6bee.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# aqua-graphcompare\n\n[![GitHub license][lic-badge]][lic-link]\n[![Github Workflow][pub-badge]][pub-link]\n\n| branch | AppVeyor                | Travis CI                      |\n| ---    | ---                     | ---                            |\n| `main` | [![Build status][5]][6] | [![Travis build Status][7]][8] |\n\n| package             | nuget                  | myget                        |\n| ---                 | ---                    | ---                          |\n| `aqua-graphcompare` | [![NuGet Badge][1]][2] | [![MyGet Pre Release][3]][4] |\n\n## Description\n\nDiffer for arbitrary object graphs allows to compare property values starting at a pair of root objects, recording any differences while visiting all nodes of the object graph.\n\nThe comparison result contains a list of deltas describing each difference found.\n\nThe comparer may be customized by both, subtyping and dependency injection for various purposes:\n\n* Override selection of properties for comparison for any given object type\n* Specify display string provider for object instance/value labeling (breadcrumb)\n* Specify display string provider for property values (old/new value display string)\n* Specify custom object mapper for advanced scenario\n\nThe comparer allows comparison of independent object types and relies on object structure and values at runtime rather than statically defined type information.\n\n## Features\n\n* Differ for arbitrary object graphs\n* Provides hierarchical and flat deltas\n* Allows for custom descriptions for types and members\n* Allows for custom resolution of values (i.e. display values for enums, foreign keys, etc.)\n\n## Sample\n\nCompare two versions of an object graph:\n\n```C#\nvar original = GetOriginalBusinessObject();\nvar changed = GetModifiedBusinessObject();\n\nvar result = new GraphComparer().Compare(original, changed);\n\nConsole.WriteLine(\"{0} {1} {2}\", \n    result.FromType, \n    result.IsMatch ? \"==\" : \"\u003c\u003e\", \n    result.ToType);\n\nforeach (var delta in result.Deltas)\n{\n    Console.WriteLine(delta.ChangeType);\n    Console.WriteLine(delta.Breadcrumb);\n    Console.WriteLine(delta.OldValue);\n    Console.WriteLine(delta.NewValue);\n}\n```\n\n[1]: https://buildstats.info/nuget/aqua-graphcompare?includePreReleases=true\n[2]: http://www.nuget.org/packages/aqua-graphcompare\n[3]: http://img.shields.io/myget/aqua/vpre/aqua-graphcompare.svg?style=flat-square\u0026label=myget\n[4]: https://www.myget.org/feed/aqua/package/nuget/aqua-graphcompare\n[5]: https://ci.appveyor.com/api/projects/status/se738mykuhel4b3q/branch/main?svg=true\n[6]: https://ci.appveyor.com/project/6bee/aqua-graphcompare/branch/main\n[7]: https://travis-ci.org/6bee/aqua-graphcompare.svg?branch=main\n[8]: https://travis-ci.org/6bee/aqua-graphcompare?branch=main\n\n[lic-badge]: https://img.shields.io/github/license/6bee/aqua-graphcompare.svg\n[lic-link]: https://github.com/6bee/aqua-graphcompare/blob/main/license.txt\n\n[pub-badge]: https://github.com/6bee/aqua-graphcompare/actions/workflows/publish.yml/badge.svg\n[pub-link]: https://github.com/6bee/aqua-graphcompare/actions/workflows/publish.yml\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F6bee%2Faqua-graphcompare","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F6bee%2Faqua-graphcompare","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F6bee%2Faqua-graphcompare/lists"}