Acknowledgements
Ribs is built on the shoulders of giants. This project began out of a curiosity of how advanced FP libraries work in the wild so I reviewed implementations from many libraries I've used in Scala and worked on implementing them in Dart. Not only did I learn a lot from them, some of the libraries provide capabilities that don't otherwise exist in the Dart ecosystem (at the time of this writing).
That being said, large portions of Ribs are directly derived from the following libraries:
Library | Derived Work(s) |
---|---|
scala | IList , IVector , Option , Either and much more |
cats | Validated , Ref and other effect related implementations |
cats-effect | IO , Ref and other effect related implementations |
cats-retry | IO retry capabilities |
jawn | JSON parser |
circe | JSON Encoding / Decoding |
scodec | BitVector , ByteVector , Binary Encoding / Decoding |
monocle | Optics |
sqaunts | Typesafe Dimensonal Analysis |
dart-check | Property based testing |
In addition to these libraries, additional inspiration/motivation was provided by:
Library | |
---|---|
FIC | Amazing immutable collections library for Dart. |
dartz | The OG Dart FP library. |
fpdart | The current de-facto FP library for Dart provides an great dev experience. |
All of these libraries are worth exploring and represent tremendous value to the entire Dart ecosystem! Much of what Ribs has become is directly possible because of these libraries.