zero-deps / purs

merged to zero-deps/proto

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

protobuf-scala-purs

CI

Library generates Purescript code to decode/encode protobuf bytes. Code is generated based on same Scala models. Essentially Scala code replaces .proto files. But because Scala code is part of sources Purescript should be generated at moment of runtime using reflection. Macros is not suitable because their purpose is to manipulate with AST and not to generate anything but code tree.

  1. Add dependency libraryDependencies += "io.github.zero-deps" %% "proto-purs" % "latest.integration"
  2. Add one resolver of:
    • resolvers += Resolver.jcenterRepo or
    • resolvers += Resolver.bintrayRepo("zero-deps", "maven")
  3. Add "purescript-protobuf": "https://github.com/zero-deps/purescript-protobuf.git" to "dependencies" section in bower.json
  4. Run method Purescript.generate[Push, Pull](moduleEncodeName="Pull", moduleDecodeName="Push", "Common", codecs=Nil)
    • Method return string which you can save to file

Types

Scala type Purescript type
String String
Int Int
Long Number
Float Not supported
Double Number
Option[_] Maybe _
Array[Byte] Uint8Array
Set[_] Array _
Map[_, _] Array (Tuple _ _)
Iterable[_] Array _

Test

sbt test
cd test
bin/com
bin/tes

About

merged to zero-deps/proto


Languages

Language:Scala 59.1%Language:PureScript 38.8%Language:Dhall 2.1%Language:JavaScript 0.1%