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)
)
)
Мой вопрос в том, что кто-нибудь знает что-то в этих строках, уже существующее, или если вы не считаете его достойным начать новый проект?
Ответы
Ответ 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.
Ответ 3
Я просто наткнулся на них, но не могу ручаться за них, поскольку я их никогда не использовал.
http://code.google.com/p/protobuf-scala/
https://github.com/jeffplaisance/scala-protobuf
Ответ 4
Хорошим инструментом для создания как Scala, так и классов Java из .proto файлов является ScalaPB. Инструмент расширяет функциональные возможности плагина sbt-protobuf.
Ответ 5
Возможно, можно было бы написать плагин-компилятор Scala, который читал и компилировал .proto файлы?