{"id":26163742,"url":"https://github.com/digitecgalaxus/galaxus.functional","last_synced_at":"2025-04-14T14:41:32.723Z","repository":{"id":43495989,"uuid":"263825216","full_name":"DigitecGalaxus/Galaxus.Functional","owner":"DigitecGalaxus","description":"A package bringing popular functional abstractions (e.g. Option or Result) to C#.","archived":false,"fork":false,"pushed_at":"2024-12-06T10:19:51.000Z","size":134,"stargazers_count":40,"open_issues_count":5,"forks_count":13,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-11T17:52:08.442Z","etag":null,"topics":["csharp","digitec","digitecgalaxus","functional","functional-programming","galaxus"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DigitecGalaxus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2020-05-14T05:39:12.000Z","updated_at":"2025-02-08T23:27:09.000Z","dependencies_parsed_at":"2023-11-25T14:27:25.209Z","dependency_job_id":"dc03f944-55e6-4cf7-87b1-8df70845a459","html_url":"https://github.com/DigitecGalaxus/Galaxus.Functional","commit_stats":{"total_commits":35,"total_committers":13,"mean_commits":"2.6923076923076925","dds":0.5714285714285714,"last_synced_commit":"e8d6b492824d16d36df3847f927e7e91e815f5c3"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DigitecGalaxus%2FGalaxus.Functional","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DigitecGalaxus%2FGalaxus.Functional/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DigitecGalaxus%2FGalaxus.Functional/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DigitecGalaxus%2FGalaxus.Functional/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DigitecGalaxus","download_url":"https://codeload.github.com/DigitecGalaxus/Galaxus.Functional/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248898475,"owners_count":21179783,"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":["csharp","digitec","digitecgalaxus","functional","functional-programming","galaxus"],"created_at":"2025-03-11T14:52:55.353Z","updated_at":"2025-04-14T14:41:32.702Z","avatar_url":"https://github.com/DigitecGalaxus.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Galaxus.Functional\n\n## Introduction\n\n`Galaxus.Functional` is a package that aims to bring FP-style features to C#. Note though, that this is not true functional programming; this package\ncontains some useful abstractions often found in functional languages.\n\nThe style is greatly inspired by the way Rust does this. If you have worked with Rust's [std::option](https://doc.rust-lang.org/std/option/index.html)\nor [std::result](https://doc.rust-lang.org/std/result/index.html), you will probably feel right at home.\n\n## Abstractions\n\nThere currently are the following abstractions found inside `Galaxus.Functional`:\n\n#### Option\n\nA type used to explicitly mark the presence or absence of a value. This is an alternative to checking for `null` and is similar to e.g.\nHaskell's `Maybe` or Java's `Optional`.\n\n#### Unit\n\nA type for something that does not exist, similar to `void` - except that it can be returned and stored as a value.\n\n#### Either\n\nA type that can be one of several variants, sort of like a discriminated union or an enum with a stored value for each enum member.\n\n#### Result\n\nA type that explicitly propagates success or error to the caller, similar to used explicitly annotated exceptions. It can be seen as a specialization\nof an `Either` with the second variant being an error.\n\n## Contribute\n\nNo matter how small, we value every contribution! If you wish to contribute,\n\n1. Please create an issue first - this way, we can discuss the feature and flesh out the nitty-gritty details\n2. Fork the repository, implement the feature and submit a pull request\n3. Once the maintainers have released a new version, your feature will be part of the NuGet package\n\nAnd always remember the golden rule for every contribution:\n[Be excellent to each other!](https://www.youtube.com/watch?v=rph_1DODXDU)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitecgalaxus%2Fgalaxus.functional","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdigitecgalaxus%2Fgalaxus.functional","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitecgalaxus%2Fgalaxus.functional/lists"}