GitHub user mygityf opened a pull request: https://github.com/apache/thrift/pull/828
THRIFT-3585 Lua: compact protocol implement of lua for thrift. You can merge this pull request into a Git repository by running: $ git pull https://github.com/gityf/thrift master Alternatively you can review and apply these changes as the patch at: https://github.com/apache/thrift/pull/828.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #828 ---- commit 0d0cf5aa589389d40a2bd71a9e09e790634aff36 Author: unknown <wangya...@xz-20141016zrqg.didichuxing.com> Date: 2016-01-28T11:08:05Z To check element of self whether nil or not,avoid the value(false) of BOOL is lost. eg. Before: if self.argBool then oprot:writeFieldBegin('argBool', TType.BOOL, 13) oprot:writeBool(self.argBool) oprot:writeFieldEnd() end After: if self.argBool ~= nil then oprot:writeFieldBegin('argBool', TType.BOOL, 13) oprot:writeBool(self.argBool) oprot:writeFieldEnd() end Why: the value(false) for paramater self.argBool will be lost when condition is 'if self.argBool then' as before. commit 8e61f5ae5cd82ede21d2fad0c67e9328a57a9bc5 Author: unknown <wangya...@xz-20141016zrqg.didichuxing.com> Date: 2016-01-28T11:29:54Z This is compact protocol lua implement for thrift. Here are some description for each source code file. luabpack.c To add bits operation function for thrift compact protocol. new functions: l_i64ToZigza,l_i32ToZigzag,l_zigzagToI32,l_zigzagToI64,l_toVarint32,l_toVarint64,l_packMesgType. TCompactProtocol.lua new source of lua for thrift compact protocol. compact_protocol_client.lua test client source code for thrift compact protocol. compact_protocol_server.lua test server source code for thrift compact protocol. rpc.thrift test thrift IDL file for test case(compact_protocol_client.lua,compact_protocol_server.lua). pcap offset hex of rpc test service.txt This is dump file create by tcpdump for test case. Test cases: client <--------------> server compact_protocol_client.lua compact_server.go (golang thrift server) compact_client.go (golang thrift client) compact_protocol_server.lua compact_protocol_client.lua compact_protocol_server.lua Test console log: log for compact_protocol_client.lua: 1 return 1 by FunCall. 2 return 2 by FunCall. log for compact_protocol_server.lua: 53 54 12 43 11.22 str value 53 54 12 34 11.22 login name namess pass vpass 10 val10 20 val20 ele1 ele3 ele2 l1. l2. commit e83cd0db71d3a4b19bf4cbe5a16156f6204e51fa Author: Wang Yaofu <voip...@sina.cn> Date: 2016-02-01T09:35:25Z update field table and index. ---- --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---