Skip to content

Latest commit

聽

History

History
46 lines (30 loc) 路 3.52 KB

README.md

File metadata and controls

46 lines (30 loc) 路 3.52 KB

Rosetta 馃尮

Plate 22 in volume I: five women in blue robes carrying white cloths in the centre, men with turbans rowing and sailing boats behind the women, many sailing boats moored at a bank in the left background; after Mayer. 1801-1803 Hand-coloured aquatint with etching 漏 The Trustees of the British Museum

Go Reference Version Build Status Go Report Card Codecov

A Collection of Translation and Data Manipulation Tools

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

  • Loose types (Int64, String, Template) that accept whatever a remote system or a hand-written file actually sends
  • 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! 馃尮