{"id":20011112,"url":"https://github.com/pavelannin/monadic-kotlin","last_synced_at":"2026-06-02T21:32:12.223Z","repository":{"id":231849384,"uuid":"782385324","full_name":"pavelannin/Monadic-Kotlin","owner":"pavelannin","description":"Monadic is a distributed multiplatform Kotlin framework that provides a way to write code from functional programming","archived":false,"fork":false,"pushed_at":"2025-08-19T03:27:01.000Z","size":275,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-19T05:32:42.970Z","etag":null,"topics":["either","functional-programming","kotlin","lce","monad","multiplatform","optional"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","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/pavelannin.png","metadata":{"files":{"readme":"README-RU.md","changelog":"CHANGELOG.md","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,"zenodo":null}},"created_at":"2024-04-05T07:41:21.000Z","updated_at":"2025-08-19T03:27:04.000Z","dependencies_parsed_at":"2025-08-19T05:25:24.951Z","dependency_job_id":"a41ea5df-3598-420d-8f42-8d99cf709747","html_url":"https://github.com/pavelannin/Monadic-Kotlin","commit_stats":null,"previous_names":["pavelannin/monadic-kotlin"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/pavelannin/Monadic-Kotlin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pavelannin%2FMonadic-Kotlin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pavelannin%2FMonadic-Kotlin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pavelannin%2FMonadic-Kotlin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pavelannin%2FMonadic-Kotlin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pavelannin","download_url":"https://codeload.github.com/pavelannin/Monadic-Kotlin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pavelannin%2FMonadic-Kotlin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33838215,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-02T02:00:07.132Z","response_time":109,"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":["either","functional-programming","kotlin","lce","monad","multiplatform","optional"],"created_at":"2024-11-13T07:24:28.668Z","updated_at":"2026-06-02T21:32:12.212Z","avatar_url":"https://github.com/pavelannin.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"[EN](README.md) | RU\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\n![badge-jvm](http://img.shields.io/badge/platform-jvm-DB413D.svg?style=flat)\n![badge-android](http://img.shields.io/badge/platform-android-6EDB8D.svg?style=flat)\n![badge-ios](http://img.shields.io/badge/platform-ios-lightgray?style=flat)\n\n# Что такое Monadic\nMonadic - это распределенный Kotlin multiplatform библиотека, который предоставляет восможность использование \nфункционального программирования в Kotlin.\n\n## Что значит распределенный фреймворк\nMonadic позволяет вам включать в зависимости только ту часть, которую вы планируете использовать в проекте.\n\nЗачастую разработчики не добавляют в свои проекты большие функциональные библиотеки из-за излишней нагруженности, \nувеличение размера приложения и возмжности использования другими разработчиками нежелательной части библиотеки.\n\nMonadic решает эту проблему - подключайте только те части библиотеки которые планируете использовать.\n\n# Как использовать\n## Использование BOM \n![Maven Central](https://img.shields.io/maven-central/v/io.github.pavelannin/monadic-bom?label=monadic-bom)\n\nСпецификации `BOM` позволяет вам управлять всеми версиями библиотеки Monadic, указав только версию спецификации. \nСама спецификация содержит ссылки на версии различных библиотек Monadic. При использовании спецификации в вашем приложении \nвам не нужно добавлять какую-либо версию зависимости библиотеки Monadic. Когда вы обновляете версию спецификации, \nвсе используемые вами библиотеки автоматически обновляются до новых версий.\n\nРекомендуется использование спецификацию `BOM`, если используете больше одной части библиотеки Monadic.\n\n```gradle\nimplementation(platform(\"io.github.pavelannin:monadic-bom:\u003cversion\u003e\"))\n```\n\n## Checkable\n![Maven Central](https://img.shields.io/maven-central/v/io.github.pavelannin/monadic-checkable-core?label=monadic-checkable-core)\n\nТип `Checkable` - это функциональная конструкция, используемая для расширения любого типа состояниями:\nпроверенно (отмеченно) или непроверенно (неотмеченно).\n\n`Checkable` удабно использовать на уровне бизнеслогики и view стейтов приложений.\n\n```gradle\nimplementation(\"io.github.pavelannin:monadic-checkable-core\")\n```\n\n## Either\n![Maven Central](https://img.shields.io/maven-central/v/io.github.pavelannin/monadic-either-core?label=monadic-either-core)\n\nМонада `Either` - это функциональная конструкция, используемая для обработки альтернативных результатов или ошибок. \n\nТипизированные ошибки относятся к технике функционального программирования, в которой явно в сигнатуре описываются потенциальные ошибки, \nкоторые могут возникнуть во время выполнения операции.\n\n```gradle\nimplementation(\"io.github.pavelannin:monadic-either-core\")\n```\n\n## Функции\n![Maven Central](https://img.shields.io/maven-central/v/io.github.pavelannin/monadic-function-core?label=monadic-function-core)\n\nУтилиты для функций в функциональном стиле: композиция, каррирование и т.д.\n\n```gradle\nimplementation(\"io.github.pavelannin:monadic-function-core\")\n```\n\n## Identifiable (DEPRECATED)\n![Maven Central](https://img.shields.io/maven-central/v/io.github.pavelannin/monadic-identifiable-core?label=monadic-identifiable-core)\n\nТип `Identifiable` представляет собой универсальную конструкцию, предназначенную для идентификации типов. \nИспользуется для добавления типизированного идентификатора к любому типу.\n\n```gradle\nimplementation(\"io.github.pavelannin:monadic-identifiable-core\")\n```\n\n## LCE\n![Maven Central](https://img.shields.io/maven-central/v/io.github.pavelannin/monadic-lce-core?label=monadic-lce-core)\n\nМонада `LCE` - это функциональная конструкция, используемая для обработки состояния операций (состоящих из 3 состояний: выполнение,\nвыполненено успешно и ошибка).\n\nУдобное использование для определения состояния экрана или операции на пользовательском представлении \n(использование в MVI подходах).\n\n```gradle\nimplementation(\"io.github.pavelannin:monadic-lce-core\")\n```\n\n### LCE - Either (Extensions)\n![Maven Central](https://img.shields.io/maven-central/v/io.github.pavelannin/monadic-lce-either?label=monadic-lce-either)\n\nНабор утилит расширяющие возможности `LCE` и `Either`.\n\n```gradle\nimplementation(\"io.github.pavelannin:monadic-lce-either\")\n```\n\n### LCE - Result (Extensions)\n![Maven Central](https://img.shields.io/maven-central/v/io.github.pavelannin/monadic-lce-result?label=monadic-lce-result)\n\nНабор утилит расширяющие возможности `LCE` и `Result`.\n\n```gradle\nimplementation(\"io.github.pavelannin:monadic-lce-result\")\n```\n\n## Optional\n![Maven Central](https://img.shields.io/maven-central/v/io.github.pavelannin/monadic-optional-core?label=monadic-optional-core)\n\nМонада `Optinal` - это функциональная конструкция, используемая для значения, которое может быть `null`.\n\n```gradle\nimplementation(\"io.github.pavelannin:monadic-optional-core\")\n```\n\n### Optional - Either (Extensions)\n![Maven Central](https://img.shields.io/maven-central/v/io.github.pavelannin/monadic-optional-either?label=monadic-optional-either)\n\nНабор утилит расширяющие возможности `Optional` и `Either`.\n\n```gradle\nimplementation(\"io.github.pavelannin:monadic-optional-either\")\n```\n\n### Optional - Result (Extensions)\n![Maven Central](https://img.shields.io/maven-central/v/io.github.pavelannin/monadic-optional-either?label=monadic-optional-either)\n\nНабор утилит расширяющие возможности `Optional` и `Result`.\n\n```gradle\nimplementation(\"io.github.pavelannin:monadic-optional-result\")\n```\n\n## Refreshable\n![Maven Central](https://img.shields.io/maven-central/v/io.github.pavelannin/monadic-refreshable-core?label=monadic-refreshable-core)\n\nТип `Refreshable` - это функциональная конструкция, используемая для расширения любого типа\nсостояниями: обновляется или обновленно.\n\n`Refreshable` удабно использовать на уровне бизнеслогики и view стейтов приложений.\n\n```gradle\nimplementation(\"io.github.pavelannin:monadic-refreshable-core\")\n```\n\n## Result\n![Maven Central](https://img.shields.io/maven-central/v/io.github.pavelannin/monadic-result-core?label=monadic-result-core)\n\nМонада `Result` - это функциональная конструкция, представляет успех (`Result.Ok`) или неудачу (`Result.Error`]).\n\n```gradle\nimplementation(\"io.github.pavelannin:monadic-result-core\")\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpavelannin%2Fmonadic-kotlin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpavelannin%2Fmonadic-kotlin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpavelannin%2Fmonadic-kotlin/lists"}