2010-01-20 50 views
1

为什么不用lua实现google的协议缓冲区? lua有没有更好的解决方案?为什么不是谷歌协议缓冲区的lua实现? lua有没有更好的解决方案?

+1

也许没人会写一篇呢? – Thilo 2010-01-20 02:43:14

+0

我不这么认为。我看到一个家伙计划这样做,但停住了,但谷歌protobuf的另一个人;并且lua已经是手册中声明的数据描述语言,所以我认为除了protobuf之外,还有更好的方法可以在lua中做同样的事情,但是我不知道如何以及为什么。 – gray 2010-01-20 02:56:50

回答

2

可能因为C或C++实现会更快(并且更容易编写),然后您可以将数据交给Lua以便在需要时使用。

有一个100线C协议缓冲解析器这里:http://blog.reverberate.org/2008/07/12/100-lines-of-c-that-can-parse-any-protocol-buffer/

或者您也可以使用谷歌的C++一个,然后从该处将您的数据关到Lua。

Lua不是为编译而编译的,所以也许这就是为什么没有人在其中实现协议缓冲区的原因。它甚至没有内置位运算符:http://lua-users.org/wiki/BitwiseOperators

+2

Lua 5.2现在标准配置了'bit32'来进行位移。 – greatwolf 2013-07-10 04:09:47

2

我刚刚创建了协议缓冲区的一个Lua实现lua-pb。它动态加载/解析器.proto文件以创建消息对象,因此不依赖于Google的标准.proto编译器。

它使用LPeg来解析.proto文件和struct & Lua BitOp用于编码/解码。