gorgonia.org/tensor@v0.9.24/internal/serialization/README.md (about) 1 # Serialization # 2 3 This pseudopackage of sorts handles serialization. The "Canonical" serialized data structure is found in the `pb` subdirectory. 4 5 # Protobuf generation 6 7 Proteus needs to be installed, as does its dependencies. 8 9 10 1. `cd pb` 11 2. `rm generated*` 12 3. `proteus -f ../../IDLs -p gorgonia.org/tensor/internal/serialization/pb` 13 4. `cd ../../IDLs` 14 5. `find gorgonia.org/ -mindepth 2 -type f -exec mv -i '{}' . ';'` 15 6. `rm -rf gorgonia.org` 16 17 18 # FlatBuffer generation 19 1. generate protobuf first 20 2. delete the `import "github.com/gogo/protobuf/gogoproto/gogo.proto";` line from the generated protobuf file 21 3. `flatc --proto PATH/TO/generated.proto` 22 4. place the `generated.fbs` file in the IDLs directory 23 4. restore the import line in the `generated.proto` file 24 5. From this directory: `flatc --go-namespace fb -g PATH/TO/generated.fbs` 25 26 27 # Notes # 28 29 `find gorgonia.org/ -mindepth 2 -type f -exec mv -i '{}' . ';'` is used to flatten and put all the stuff in the root IDLs directory. 30 31 # The Serialization Story # 32 33 To serialize, we copy/convert/coerce the data to the internal/serialization data structures, then call the `Marshall` methods from there