Компилятор буферов протокола Scala - PullRequest
18 голосов
/ 04 августа 2010

Я думал о создании генератора кода для генерации scala из файла определений google protobuf.Причина, по которой я считаю это ценным, заключается в том, что java-привязки слишком Java-иш, и в scala можно было бы сделать намного лучше.Например, для следующего определения

message Foo {
  required int F1 = 1;
  repeated string F2 = 2;
  message Inner (
    required int F3 = 1;
  )
}

Я хочу иметь возможность построить объект прото из Scala следующим образом:

val foo = Foo (
  F1(127),
  F2("first", "second"),
  Inner (
    F3(911)
  )
)

У меня вопрос, знает ли кто-нибудь что-то подобноеуже существует, или если нет, то считаете ли вы достойным начать новый проект?

Ответы [ 5 ]

14 голосов
/ 27 июля 2011

В настоящее время я работаю над компилятором Scala Protocol Buffers с моим наставником Виктором Клангом. Это мой проект Google Summer of Code, и вы можете следить за прогрессом на github на https://github.com/SandroGrzicic/ScalaBuff.

[Обновление] Основная часть завершена; Мне все еще нужно реализовать поддержку расширений, групп и опций полей. Это удобно, и я приглашаю всех попробовать и дать отзыв; Я открыт для предложений и пожеланий.

1 голос
/ 10 февраля 2016

Действительно хорошим инструментом для генерации классов Scala и Java из файлов .proto является ScalaPB .Инструмент расширяет функциональность плагина sbt-protobuf .

1 голос
/ 23 апреля 2011

Я только что натолкнулся на них, но не могу поручиться за них, так как никогда не использовал их.

http://code.google.com/p/protobuf-scala/

https://github.com/jeffplaisance/scala-protobuf

1 голос
/ 04 августа 2010

Этот проект использует плагины Simple-Build-Tool для достижения этого эффекта: http://github.com/codahale/protobuf-sbt?locale=sv

Обновление: Вышеупомянутый проект больше не существует.Плагин sbt-protobuf расширил функциональность этого оригинального проекта.Однако обратите внимание, что sbt-protobuf генерирует классы Java, а не Scala.

0 голосов
/ 04 августа 2010

Может быть, можно было бы написать плагин для компилятора Scala, который считывал и компилировал файлы .proto?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...