alexbool / macrobuf

Protocol Buffers for Scala done right

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

UNDER CONSTRUCTION

This library is a custom Google Protocol Buffers serializier/parser written in Scala.

Protocol Buffers (or simply protobuf) is a popular and effective data serializiation format and language-agnostic RPC protocol. Read more about protobuf: official docs, Wikipedia.

Why another library?

The official approach for serializing protobuf requires writing .proto files containing message descriptors. These descriptors are then compiled into target language source files. Source generators are available for a variety of languages. While this practice is useful when integrating services written in different languages and for message format versioning, it is not convenient when you just want to serialize yor case classes into protobuf. Additionally, generated sources are sometimes very difficult to read and understand, and contain some patterns that you cannot escape (examples coming later).

How to use it?

Short answer: don't use it. It's not ready for production at the moment.

Long answer (well, not that long. More to come):

import me.alexbool.macrobuf.Protobuf

case class MyMessage(id: Int, name: Option[String], someOtherData: Seq[Long])

val serializer = Protobuf.macroSerializer[MyMessage]
val serializied = serializer.serialize(MyMessage(1, Some("You are beautiful when using this library!"), Seq(2, 3, 4))

Build Status

About

Protocol Buffers for Scala done right


Languages

Language:Scala 100.0%