{"id":22797990,"url":"https://github.com/6bee/aqua-core","last_synced_at":"2025-04-19T15:13:16.904Z","repository":{"id":35330562,"uuid":"39592583","full_name":"6bee/aqua-core","owner":"6bee","description":"Transform any object-graph into a dynamic, composed dictionaries like structure, holding serializable values and type information","archived":false,"fork":false,"pushed_at":"2025-03-09T19:57:38.000Z","size":1939,"stargazers_count":23,"open_issues_count":0,"forks_count":11,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-10T18:02:52.416Z","etag":null,"topics":["aqua","dynamic","dynamic-objects","metaprogramming","serialize-objects","type-metadata"],"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}},"created_at":"2015-07-23T21:00:54.000Z","updated_at":"2025-03-09T19:57:11.000Z","dependencies_parsed_at":"2023-12-08T11:27:02.085Z","dependency_job_id":"e73b314b-b411-4baf-8c30-8688622df27f","html_url":"https://github.com/6bee/aqua-core","commit_stats":{"total_commits":670,"total_committers":9,"mean_commits":74.44444444444444,"dds":"0.035820895522388096","last_synced_commit":"2fbe51d004a5de60248bacd092284f425059f11b"},"previous_names":[],"tags_count":107,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/6bee%2Faqua-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/6bee%2Faqua-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/6bee%2Faqua-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/6bee%2Faqua-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/6bee","download_url":"https://codeload.github.com/6bee/aqua-core/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":["aqua","dynamic","dynamic-objects","metaprogramming","serialize-objects","type-metadata"],"created_at":"2024-12-12T06:07:51.106Z","updated_at":"2025-04-19T15:13:16.885Z","avatar_url":"https://github.com/6bee.png","language":"C#","readme":"# aqua-core\n\n[![GitHub license][lic-badge]][lic-link]\n[![Github Workflow][pub-badge]][pub-link]\n\n| branch | AppVeyor                         | Travis CI                      | Codecov.io         | Codacy                  | CodeFactor             |\n| ---    | ---                              | ---                            | ---                | ---                     | ---                    |\n| `main` | [![AppVeyor Build Status][1]][2] | [![Travis Build Status][3]][4] | [![codecov][5]][6] | [![Codacy Badge][7]][8] | [![CodeFactor][9]][10] |\n\n| package                     | nuget                    | myget                          |\n| ---                         | ---                      | ---                            |\n| `aqua-core`                 | [![NuGet Badge][13]][14] | [![MyGet Pre Release][15]][16] |\n| `aqua-core-newtonsoft-json` | [![NuGet Badge][17]][18] | [![MyGet Pre Release][19]][20] |\n| `aqua-core-protobuf-net`    | [![NuGet Badge][21]][22] | [![MyGet Pre Release][23]][24] |\n| `aqua-core-text-json`       | [![NuGet Badge][25]][26] | [![MyGet Pre Release][27]][28] |\n\nTransform any object-graph into a dynamic, composed dictionaries like structure, holding serializable values and type information.\n\nAqua-core provides a bunch of serializable classes:\n\n- `DynamicObject`\n- `TypeInfo`\n- `FieldInfo`\n- `PropertyInfo`\n- `MethodInfo`\n- `ConstructorInfo`\n\nAny object graph may be translated into a `DynamicObject` structure and back to it's original type using `DynamicObjectMapper`.\n\n## Sample\n\nMapping an object graph into a `DynamicObject` and then back to it's original type\n\n```C#\nBlog blog = new Blog\n{\n    Title = \".NET Blog\",\n    Description = \"A first-hand look from the .NET engineering teams\",\n    Posts = new[]\n    {\n        new Post\n        {\n            Title = \"Announcing .NET Core 1.0\",\n            Date = new DateTime(2016, 6, 27),\n            Author = \"rlander\"\n            Text = \"We are excited to announce the release of .NET Core 1.0, ASP.NET Core 1.0 and \" +\n               \"Entity Framework Core 1.0, available on Windows, OS X and Linux! \" +\n               \".NET Core is a cross-platform, open source, and modular .NET platform [...]\",\n        },\n        new Post\n        {\n            Title = \"Happy 15th Birthday .NET!\",\n            Date = new DateTime(2017, 2, 13),\n            Author = \"bmassi\",\n            Text = \"Today marks the 15th anniversary since .NET debuted to the world [...]\",\n        }\n    }\n}\n\nDynamicObject dynamicObject = new DynamicObjectMapper().MapObject(blog);\n\nBlog restoredBlog = new DynamicObjectMapper().Map(dynamicObject) as Blog;\n```\n\n[1]: https://ci.appveyor.com/api/projects/status/98rc3yav530hlw1c/branch/main?svg=true\n[2]: https://ci.appveyor.com/project/6bee/aqua-core\n\n[3]: https://api.travis-ci.com/6bee/aqua-core.svg?branch=main\n[4]: https://travis-ci.com/github/6bee/aqua-core?branch=main\n\n[5]: https://codecov.io/gh/6bee/aqua-core/branch/main/graph/badge.svg\n[6]: https://codecov.io/gh/6bee/aqua-core\n\n[7]: https://app.codacy.com/project/badge/Grade/b6c426b5f19140d8a793f06d73984005\n[8]: https://app.codacy.com/gh/6bee/aqua-core/dashboard\n\n[9]: https://www.codefactor.io/repository/github/6bee/aqua-core/badge\n[10]: https://www.codefactor.io/repository/github/6bee/aqua-core\n\n[13]: https://img.shields.io/nuget/v/aqua-core.svg\n[14]: https://www.nuget.org/packages/aqua-core\n[15]: https://img.shields.io/myget/aqua/vpre/aqua-core.svg?label=myget\n[16]: https://www.myget.org/feed/aqua/package/nuget/aqua-core\n\n[17]: https://img.shields.io/nuget/v/aqua-core-newtonsoft-json.svg\n[18]: https://www.nuget.org/packages/aqua-core-newtonsoft-json\n[19]: https://img.shields.io/myget/aqua/vpre/aqua-core-newtonsoft-json.svg?label=myget\n[20]: https://www.myget.org/feed/aqua/package/nuget/aqua-core-newtonsoft-json\n\n[21]: https://img.shields.io/nuget/v/aqua-core-protobuf-net.svg\n[22]: https://www.nuget.org/packages/aqua-core-protobuf-net\n[23]: https://img.shields.io/myget/aqua/vpre/aqua-core-protobuf-net.svg?label=myget\n[24]: https://www.myget.org/feed/aqua/package/nuget/aqua-core-protobuf-net\n\n[25]: https://img.shields.io/nuget/v/aqua-core-text-json.svg\n[26]: https://www.nuget.org/packages/aqua-core-text-json\n[27]: https://img.shields.io/myget/aqua/vpre/aqua-core-text-json.svg?label=myget\n[28]: https://www.myget.org/feed/aqua/package/nuget/aqua-core-text-json\n\n[lic-badge]: https://img.shields.io/github/license/6bee/aqua-core.svg\n[lic-link]: https://github.com/6bee/aqua-core/blob/main/license.txt\n\n[pub-badge]: https://github.com/6bee/aqua-core/actions/workflows/publish.yml/badge.svg\n[pub-link]: https://github.com/6bee/aqua-core/actions/workflows/publish.yml\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F6bee%2Faqua-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F6bee%2Faqua-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F6bee%2Faqua-core/lists"}