From 522ba4d59ae9b4e1986706c63b1ce3f9f4a03426 Mon Sep 17 00:00:00 2001 From: Red Daly Date: Wed, 18 May 2022 18:15:35 +0000 Subject: [PATCH] Update README.md with explanation of the design. --- README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/README.md b/README.md index a924946..9ec926d 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,26 @@ web-based playground hosted on Github](https://google.github.io/xtoproto). More details about how to use xtoproto will be added soon. +## Design + +xtoproto uses example data to infer a both *protobuf definition*, a *source +record spec*, and a *mapping definition*. + +* The *protobuf definition* can be +represented in a `.proto` file with a custom `message` type for the record being +inferred. +* The *source record spec* is a specification for well-formed input data. For a + CSV-to-proto translation, this would be a schema for the CSV input: names and + types of columns. +* The *mapping definition* defines how to convert from the source record spec to + the destination proto type. + + +### Formats +The following formats currently have some support: + +1. CSV (comma separated values). + ## Building The project is buildable with Bazel and `go build`. Bazel is recommended because