xtoproto

module
v0.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 3, 2020 License: Apache-2.0

README

xtoproto (csvtoproto, xmltoproto, etc.)

xtoproto is a library for automatically (1) inferring a protocol buffer definition (a .proto file) from XML and CSV files, and (2) generating runtime code from translating XML and CSV files to proto using the mappings from (1).

Not yet operable

This repository was created on June 29, 2020. We are incrementally migrating the code onto Github, and the project will not be functional until that migration is finished. This README will be updated with instructions about how to use the project once the migration is complete. In the mean time, feel free to browse the code.

Building

The project is buildable with Bazel. We also plan to make it buildable using go build after the initial migration effort.

bazel build //...

Development

gopls does not yet work with bazel. In the meantime, it is convenient to generate the .pb.go files used within this project so that gopls can pick them up and make autocomplete work. To do this, issue the following command from the root of the checked out xtoproto repository:

 bazel run //releasing/generate_pb_go_files -- -output_dir $PWD/proto --alsologtostderr

Disclaimer

This is not an official Google product.

Directories

Path Synopsis
cmd
xtoproto
Program xtoproto infers .proto definitions from record-oriented files (CSV, XML, etc.).
Program xtoproto infers .proto definitions from record-oriented files (CSV, XML, etc.).
xtoproto_web
Program xtoproto_web is a web application intended to be compiled with WASM that infers .proto definitions from record-oriented files (CSV, XML, etc.).
Program xtoproto_web is a web application intended to be compiled with WASM that infers .proto definitions from record-oriented files (CSV, XML, etc.).
Package csvcoder decodes Go types from CSV records using struct tags, similar to encoding/csv and encoding/xml packages in the standard library.
Package csvcoder decodes Go types from CSV records using struct tags, similar to encoding/csv and encoding/xml packages in the standard library.
Package csvinfer guesses the types of CSV columns and uses these to generate a CSVProtoMapping object that in turn may be used to generate a .proto definition and CSV-to-proto parser.
Package csvinfer guesses the types of CSV columns and uses these to generate a CSVProtoMapping object that in turn may be used to generate a .proto definition and CSV-to-proto parser.
Package csvtoproto generates a .proto file and a .go file from a go/csv-to-proto mapping file.
Package csvtoproto generates a .proto file and a .go file from a go/csv-to-proto mapping file.
Package csvtoprotoparse contains runtime functionality needed by code generated by the go/csv-to-proto tool.
Package csvtoprotoparse contains runtime functionality needed by code generated by the go/csv-to-proto tool.
Package protocp transforms one record-oriented format into another record-oriented format where the records are protocol buffers.
Package protocp transforms one record-oriented format into another record-oriented format where the records are protocol buffers.
Package recordinfer guesses the types of record columns and uses these to generate a RecordProtoMapping object that in turn may be used to generate a .proto definition and record-to-proto parser.
Package recordinfer guesses the types of record columns and uses these to generate a RecordProtoMapping object that in turn may be used to generate a .proto definition and record-to-proto parser.
releasing
generate_pb_go_files
Program generate_pb_go_files collects the generated go files from the bazel runfiles directory that match a given prefix and outputs those files to a destination directory; this may be used when .pb.go artifacts are needed to build xtoproto without bazel.
Program generate_pb_go_files collects the generated go files from the bazel runfiles directory that match a given prefix and outputs those files to a destination directory; this may be used when .pb.go artifacts are needed to build xtoproto without bazel.
Package service implements the XToProtoService gRPC service.
Package service implements the XToProtoService gRPC service.
Package textcoder defines a registry of Go types and associated textual encoding/decoding functions.
Package textcoder defines a registry of Go types and associated textual encoding/decoding functions.
Package xmlinfer attempts to infer protocol buffer definitions from a set of XML examples.
Package xmlinfer attempts to infer protocol buffer definitions from a set of XML examples.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL