Protocol Buffers is a data serialization format and a message definition language. Traditionally, Protocol Buffers libraries take message definitions and generate source code for encoders and decoders for these messages.
In this talk, we will explore a different approach that is coming to ScalaPB that not only avoids code generation but also does not require the user to provide message definitions. Instead, the schema is automatically inferred from the user's domain model using shapeless and type-classes for encoders and decoders are derived by the compiler.
Attendees should have intermediate-level knowledge of Scala. Specifically, familiarity with generic classes and implicit parameters. I am planning to give a gentle introduction to the more advanced concepts such as Shapeless's HList and type-class derivation. No knowledge of protocol buffers is necessary
In this talk I will demonstrate a specific application of an advanced technique: automatically deriving encoders and decoders from case classes. This technique is pretty general, and the objective is that attendees will learn how to use this general technique in other contexts.
Nadav Samet is an ex-Googler and currently an Engineering Manager at Tubular Labs. He is the author of ScalaPB, a Protocol Buffers library for Scala, Scala.js and Scala Native. Scala has been his favorite programming language since 2011.