{"id":22624044,"url":"https://github.com/mcgppeters/radix","last_synced_at":"2025-04-11T17:41:25.793Z","repository":{"id":40723942,"uuid":"140822758","full_name":"MCGPPeters/Radix","owner":"MCGPPeters","description":"Radix is a set of libraries centered around building event sourced components and a runtime hosting those components","archived":false,"fork":false,"pushed_at":"2024-06-21T10:18:55.000Z","size":6609,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-04T08:41:27.145Z","etag":null,"topics":["ai","blazor","csharp","elm-architecture","event-sourcing","fsharp","model-view-update"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MCGPPeters.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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}},"created_at":"2018-07-13T08:53:27.000Z","updated_at":"2024-11-23T19:34:37.000Z","dependencies_parsed_at":"2023-10-11T21:38:40.143Z","dependency_job_id":"1c4840e5-d5e0-42f3-8d0e-b8dc18d67c08","html_url":"https://github.com/MCGPPeters/Radix","commit_stats":{"total_commits":441,"total_committers":5,"mean_commits":88.2,"dds":"0.24263038548752835","last_synced_commit":"410a6a7e46ff45858801842cf5fcd695aeb3858c"},"previous_names":[],"tags_count":95,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MCGPPeters%2FRadix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MCGPPeters%2FRadix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MCGPPeters%2FRadix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MCGPPeters%2FRadix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MCGPPeters","download_url":"https://codeload.github.com/MCGPPeters/Radix/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248451392,"owners_count":21105863,"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":["ai","blazor","csharp","elm-architecture","event-sourcing","fsharp","model-view-update"],"created_at":"2024-12-09T00:09:40.341Z","updated_at":"2025-04-11T17:41:25.761Z","avatar_url":"https://github.com/MCGPPeters.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/MCGPPeters/Radix)\n[![CD](https://github.com/MCGPPeters/Radix/actions/workflows/CD.yml/badge.svg)](https://github.com/MCGPPeters/Radix/actions/workflows/CD.yml)\n\n# Radix\n\nRadix is a set of libraries centered around building event sourced components and a runtime hosting those components. It treats event sourcing as a domain in itself. \n\nOn top of that it provides libraries that make use of these components. A core example of this is a [library](https://github.com/MCGPPeters/Radix/wiki/Task-based-ASP-,NET-Components) that helps you build task oriented user interfaces based on ASP .NET Core (Blazor) components. It provides an alternate way of building ASP .NET Core (Blazor) components in functional style without using Razor components. It is heavily inspired by Elm and [Bolero](https://github.com/fsbolero/bolero) . It uses the 'model view update' pattern for building interactivity. It is heavily optimized to use the event sourcing library mentioned.\n\nAl is build on top of a generic functional style core.\n\nThere is a C# version and a version in F#. Most effort at the time is in the C# version, though a goal is feature parity in C# and F#. For the F# equivalent of the Elm architecture I would recommend using [Bolero](https://github.com/fsbolero/bolero) .\n\nPlease consult the [wiki](https://github.com/MCGPPeters/Radix/wiki) for the docs, test and sample applications for guidance on how to use it.\n\n# Motivation\n\nThe original end goal I had in mind is to build a library for building explainable AI systems. Using event sourcing concepts an 'audit trail' on how the system behaves and why should help analyze and understanding the behavior. Current idea is to mostly focus on reinforcement learning combined with neuro evolutional concepts, but the concept is not limited to only this application.\n\nHowever, as mentioned in the intro, the generalized library for building event sourced components and task based user interfaces has most of the focus right now. \n\n# Status\n\nA working of version of the event sourcing library is done.  Most focus is on building sample applications for testing realistic scenario's. Adding code generators for tedious work, like for value types and constrained value types with build in validation for preserving invariants.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcgppeters%2Fradix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmcgppeters%2Fradix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcgppeters%2Fradix/lists"}