{"id":15554966,"url":"https://github.com/cranst0n/ribs","last_synced_at":"2025-04-23T20:22:56.196Z","repository":{"id":148303873,"uuid":"608264354","full_name":"cranst0n/ribs","owner":"cranst0n","description":"FP inspired packages for Dart","archived":false,"fork":false,"pushed_at":"2025-01-27T16:44:35.000Z","size":2429,"stargazers_count":11,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-18T04:55:11.660Z","etag":null,"topics":["dart","functional-programming"],"latest_commit_sha":null,"homepage":"https://cranst0n.github.io/ribs/","language":"Dart","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/cranst0n.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":"2023-03-01T16:54:42.000Z","updated_at":"2025-01-27T16:44:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"96c5f6ec-69d5-487e-89d2-b9692b4131a9","html_url":"https://github.com/cranst0n/ribs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cranst0n%2Fribs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cranst0n%2Fribs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cranst0n%2Fribs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cranst0n%2Fribs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cranst0n","download_url":"https://codeload.github.com/cranst0n/ribs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250506750,"owners_count":21441837,"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":["dart","functional-programming"],"created_at":"2024-10-02T15:05:24.964Z","updated_at":"2025-04-23T20:22:56.173Z","avatar_url":"https://github.com/cranst0n.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cdiv align=\"center\"\u003e\n\n![Ribs](https://raw.githubusercontent.com/cranst0n/ribs/main/.github/assets/logo.png)\n\n# Ribs\n\n[![CI](https://github.com/cranst0n/ribs/actions/workflows/ci.yml/badge.svg)](https://github.com/cranst0n/ribs/actions/workflows/ci.yml)\n[![codecov](https://codecov.io/gh/cranst0n/ribs/branch/main/graph/badge.svg?token=12627T0AO0)](https://codecov.io/gh/cranst0n/ribs)\n\n[![core](https://img.shields.io/pub/v/ribs_core?label=ribs_core\u0026color=00c000)](https://pub.dev/packages/ribs_core)\n[![effect](https://img.shields.io/pub/v/ribs_effect?label=ribs_effect\u0026color=00c000)](https://pub.dev/packages/ribs_effect)\n[![json](https://img.shields.io/pub/v/ribs_json?label=ribs_json\u0026color=00c000)](https://pub.dev/packages/ribs_json)\n[![binary](https://img.shields.io/pub/v/ribs_binary?label=ribs_binary\u0026color=00c000)](https://pub.dev/packages/ribs_binary)\n[![optics](https://img.shields.io/pub/v/ribs_optics?label=ribs_optics\u0026color=00c000)](https://pub.dev/packages/ribs_optics)\n[![units](https://img.shields.io/pub/v/ribs_units?label=ribs_units\u0026color=00c000)](https://pub.dev/packages/ribs_units)\n[![check](https://img.shields.io/pub/v/ribs_check?label=ribs_check\u0026color=00c000)](https://pub.dev/packages/ribs_check)\n[![ip](https://img.shields.io/pub/v/ribs_ip?label=ribs_ip\u0026color=00c000)](https://pub.dev/packages/ribs_ip)\n\n![http](https://img.shields.io/badge/ribs__http-unpublished-f00000)\n![rill](https://img.shields.io/badge/ribs__rill-unpublished-f00000)\n![sqlite](https://img.shields.io/badge/ribs__sqlite-unpublished-f00000)\n\n**🧪 Experimental FP packages for Dart 🧪**\n\n[![Reinventing the Wheel](https://raw.githubusercontent.com/cranst0n/ribs/main/.github/assets/reinventing_the_wheel.png)](https://twitter.com/rockthejvm/status/1640320394438508545)\n\n\n[Documentation](https://cranst0n.github.io/ribs/)\n\n\u003c/div\u003e\n\n### Unpublished Libraries\n\n**rill**\n\nWhile the existing library is somewhat useful for tinkering around there are at least 2 major\nroadblocks that should be addressed before rill is reliably useful in the wild:\n\n* [Lower Type Bounds][https://github.com/dart-lang/language/issues/1674]\n* [Variance][https://github.com/dart-lang/language/issues/213]\n\nBoth of these features exist in Scala, which in part, is what makes fs2 work so\nwell. Lack of these features severly limits the general usefulness.\n\n**http**\n\nBuilding a production ready http library is a massive undertaking, and one that isn't within\nthe scope of my efforts today, or maybe ever. ribs_http is a proof of concept that works for\nsmall limited use-cases. I use if for small toy project because it fits in well with the rest\nof the ribs ecosystem. If you want to do anything mildly out of the ordinary, chances are you'll\nhave to build something yourself. ribs_http should also be dependent on rill, so until a good\nstreaming library exists, the utility is limited here.\n\n**sqlite**\n\nThis is still a fairly immature library but has proven useful in my toy projects so could be\npublished at some point.\n\n---\n\n### Alternatives\n\nThere are more battle tested libraries available that have overlapping\nfeatures, as well as additional features not found here, so you should\ncertainly consider using them. They all bring some things to the table\nthat you won't find here.\n\n* [dartz](https://github.com/spebbe/dartz)\n* [fpdart](https://github.com/SandroMaglione/fpdart)\n* [FIC](https://pub.dev/packages/fast_immutable_collections)\n\n### Credits\n\nMuch of the design and functionality in this repository is closely derived from\nthe following libraries.\n\n* [scala](https://github.com/scala/scala)\n* [cats-effect](https://github.com/typelevel/cats-effect)\n* [fs2](https://github.com/typelevel/fs2)\n* [scodec](https://github.com/scodec/scodec)\n* [jawn](https://github.com/typelevel/jawn)\n* [circe](https://github.com/circe/circe)\n* [monocle](https://www.optics.dev/Monocle/)\n* [sqaunts](https://github.com/typelevel/squants)\n* [cats-retry](https://github.com/cb372/cats-retry)\n* [doobie](https://github.com/tpolecat/doobie)\n* [dart-check](https://github.com/wigahluk/dart-check)\n* [ip4s](https://github.com/Comcast/ip4s)\n* [punycode_converter](https://github.com/darkxanter/punycode_converter)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcranst0n%2Fribs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcranst0n%2Fribs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcranst0n%2Fribs/lists"}