2010-01-20 18 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用於編碼/解碼。