Rosetta 🌹
Rosetta combines several different data manipulation tools into a single module. While each was useful on its own, the dependencies between them made updates hellish, so this collection was born.
Many of these packages pre-date Go generics, and many are being refactored to take advantage of this new capability.
What's Included
- Channel tools for manipulating Go channels
- Compare values of unknown data types.
- Convert between arbitrary data types with sensible, configurable defaults.
- HTML conversion tools
- Iterator tools for iterating over data structures
- Maps tools for working with map types
- Schema validation based on JSON Schema
- Slice manipulation library
- Translate data mapping library
Enhanced Data Types
- List parsing library
- MapOf data type with type safe getters/setters
- Null-able data types
- SliceOf data types
Image Used With Permission
© The Trustees of the British Museum. Shared under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) licence.
Pull Requests Welcome
While many parts of this module have been used for years in production environments, it is still a work in progress and will benefit from your experience reports, use cases, and contributions. If you have an idea for making Rosetta better, send in a pull request. We're all in this together! 🌹