Подтвердить что ты не робот

Scala компилятор буферов протоколов

Я думал о написании генератора кода для генерации scala из файла определений goob 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)
  )
)

Мой вопрос в том, что кто-нибудь знает что-то в этих строках, уже существующее, или если вы не считаете его достойным начать новый проект?

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

Ответ 4

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

Ответ 5

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