Protocol Buffers Handbook Getting Deeper into Protobuf Internals and Its Usage
Delve into Google Protobuf with the help of practical examples and exercises for streamlined communication and seamless integration with gRPC Key Features Encode and decode complex data structures, enhancing data interchange efficiency across systems Understand Protobuf by mastering the syntax, sche...
Other Authors: | |
---|---|
Format: | eBook |
Language: | Inglés |
Published: |
Birmingham, UK :
Packt Publishing Ltd
[2024]
|
Edition: | First edition |
Subjects: | |
See on Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009816678606719 |
Table of Contents:
- Cover
- Title Page
- Copyright and Credits
- Dedication
- Contributors
- Table of Contents
- Preface
- Chapter 1: Serialization Primer
- Technical requirements
- Serialization's goals
- How does it all work?
- The different data formats
- What about Protobuf?
- Serialized data size
- Availability of data
- Readability of data
- Type safety
- Readability of schema
- Summary
- Quiz
- Answers
- Chapter 2: Protobuf is a Language
- Technical requirements
- Top-level statements
- Syntax
- Edition
- Package
- Import
- Option
- User-defined types
- enum
- Message
- Option
- Field
- Reserved
- MapField
- Oneof
- Message
- Services
- Out-of-the-box types
- Duration and timestamp
- FieldMask
- Any
- Struct
- Summary
- Quiz
- Answers
- Chapter 3: Describing Data with Protobuf Text Format
- Technical requirements
- Why use the text format?
- Less boilerplate
- Type safety
- Headers and comments
- Describing data
- Scalar values
- Messages
- Maps
- Oneofs
- Enums
- Summary
- Quiz
- Answers
- Chapter 4: The Protobuf Compiler
- Technical requirements
- Downloading and installing protoc
- GitHub Releases page
- curl and wget
- Transpiling .proto files
- Why code generation?
- Generating C++ code
- Generating Go code
- How does the code map to the .proto file?
- Specifying import paths
- Encoding data to type with
- encode
- Decoding data to type with
- decode
- Decoding data to type without .proto files, with
- decode_raw
- What about the other flags?
- Summary
- Quiz
- Answers
- Challenge solutions
- Challenge 1 - Descriptors
- Challenge 2 - Plugins
- Chapter 5: Serialization Internals
- Technical requirements
- Variable-length integers (varints)
- ZigZag encoding
- Fixed-size integers
- How to choose between integer types
- Number range
- Sign
- Data distribution.
- Field metadata
- Length-delimited encoding
- Packed versus unpacked repeated fields
- Maps
- Summary
- Quiz
- Answers
- Chapter 6: Schema Evolution over Time
- Technical requirements
- Backward and forward compatibility
- Backward compatibility
- Forward compatibility
- Some problems
- Conclusion
- Disabling tags - reserved tags
- Disabling field names - reserved names
- The evolution rules
- Summary
- Quiz
- Answers
- Chapter 7: Implementing the Address Book in Go
- Technical requirements
- The project: address book
- Defining the schema
- Boilerplate code
- Converting string to enum values
- Reading/writing from/to a file
- Adding entries
- The business logic
- The CLI
- Listing entries
- The business logic
- The CLI
- Hiding sensitive data
- Summary
- Challenge
- Chapter 8: Implementing the Address Book in Python
- Technical requirements
- The Address Book project
- Defining the schema
- Boilerplate code
- Converting strings to enum values
- Reading/writing from/to files
- Adding entries
- The business logic
- The CLI
- Listing entries
- The business logic
- The CLI
- Hiding sensitive data
- Interoperability between Go and Python
- Summary
- Challenge
- Chapter 9: Developing a Protoc Plugin in Golang
- Technical requirements
- The project
- What are custom options?
- A custom option
- What are protoc plugins?
- The plugin
- Getting all the messages
- Defining a Protoc plugin
- Updating the AddressBook
- Adding a protoc plugin option
- Summary
- Challenges
- Chapter 10: Advanced Build
- Technical requirements
- The sample project
- Building manually with protoc - a summary
- Using Makefile
- Using Buf
- Using Bazel
- Summary
- Challenge
- Index
- Other Books You May Enjoy.