{"id":18780280,"url":"https://github.com/reactivemarbles/mvvm","last_synced_at":"2025-10-11T08:17:55.908Z","repository":{"id":40362115,"uuid":"398824359","full_name":"reactivemarbles/Mvvm","owner":"reactivemarbles","description":"A light weight core package for Reactive Marbles to introduce MVVM abstractions","archived":false,"fork":false,"pushed_at":"2025-09-27T17:35:27.000Z","size":340,"stargazers_count":14,"open_issues_count":6,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-10-04T02:00:05.716Z","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/reactivemarbles.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"reactivemarbles"}},"created_at":"2021-08-22T14:47:55.000Z","updated_at":"2025-10-03T23:19:39.000Z","dependencies_parsed_at":"2023-11-23T01:26:09.444Z","dependency_job_id":"f9e2039e-e63e-45a9-9e50-5d5106b95c86","html_url":"https://github.com/reactivemarbles/Mvvm","commit_stats":{"total_commits":54,"total_committers":3,"mean_commits":18.0,"dds":0.5740740740740741,"last_synced_commit":"6be6aec359af47148f12683e5351c1a1b544e549"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/reactivemarbles/Mvvm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactivemarbles%2FMvvm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactivemarbles%2FMvvm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactivemarbles%2FMvvm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactivemarbles%2FMvvm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reactivemarbles","download_url":"https://codeload.github.com/reactivemarbles/Mvvm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reactivemarbles%2FMvvm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279006763,"owners_count":26084148,"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","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-11-07T20:25:37.254Z","updated_at":"2025-10-11T08:17:55.893Z","avatar_url":"https://github.com/reactivemarbles.png","language":"C#","funding_links":["https://github.com/sponsors/reactivemarbles"],"categories":[],"sub_categories":[],"readme":"![License](https://img.shields.io/github/license/ReactiveMarbles/Mvvm.svg) [![Build](https://github.com/reactivemarbles/Mvvm/actions/workflows/ci-build.yml/badge.svg)](https://github.com/reactivemarbles/Mvvm/actions/workflows/ci-build.yml)\n\n\n# Reactive Marbles Mvvm\nA light weight mvvm package for Reactive Marbles to introduce framework abstractions\n\n## NuGet packages\n\n| Name                          | Platform          | NuGet                            |\n| ----------------------------- | ----------------- | -------------------------------- |\n| [ReactiveMarbles.Mvvm][Core]       | Core - Libary     | [![CoreBadge]][Core]             |\n\n[Core]: https://www.nuget.org/packages/ReactiveMarbles.Mvvm/\n[CoreBadge]: https://img.shields.io/nuget/v/ReactiveMarbles.Mvvm.svg\n\n## Get Started\n\n### Registering Framework Concerns\n\n`ICoreRegistration` gives the framework an understanding of the following concerns for ReactiveMarbles internals.  We provide a simple builder and extension method to register it against the `ServiceLocator`.\n\n```csharp\nServiceLocator\n   .Current()\n   .AddCoreRegistrations(() =\u003e\n        CoreRegistrationBuilder\n           .Create()\n           .WithMainThreadScheduler(Scheduler.Default)\n           .WithTaskPoolScheduler(TaskPoolScheduler.Default)\n           .WithExceptionHandler(new DebugExceptionHandler())\n           .Build());\n```\n\n### AsValue\n\n`AsValue` allows you to bind an `IObservable\u003cT\u003e` to a property that produces a property changed event.\n\n```csharp\n_valueChange =\n    this.WhenChanged(x =\u003e x.Property)\n        .Select(x =\u003e x + \"Changed\")\n        .AsValue(onChanged: x =\u003e RaisePropertyChanged(nameof(ValueChange)));\n```\n\n## Benchmarks\n\nTo see how Mvvm compares to other frameworks see: [Benchmarks](https://github.com/reactivemarbles/Mvvm/blob/main/src/ReactiveMarbles.Mvvm.Benchmarks/README.MD)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freactivemarbles%2Fmvvm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freactivemarbles%2Fmvvm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freactivemarbles%2Fmvvm/lists"}