Unreal UnLua + Lua Protobuf

Unreal UnLua + Lua Protobuf

https://protobuf.dev/

protobuf wire format:pb 编译到底层的数据协议

https://github.com/starwing/lua-protobuf/blob/master/README.zh.md

buffer 处理

lua string 可以当 buffer 用,# len 不会遇到 0 截断,注意和 cstring 的区别

UE FString 有点坑

  1. UnLua FString => lua string 用的 lua_pushstring,会遇到 0 截断
  2. FString 本身是带编码的,当 buffer 还是。。

哎,稳妥的做法还是 TArray<uint8> ,这样先把业务跑起来了

这块最好还是手写 Lua C API 来减少传递的 overhead,避免重复拷贝

序列化测试

发现和 C++ PB 序列化出来的结果不一样,咨询了下作者, Lua PB 默认是随机字段顺序

开启 encode_order 即可,不过仅限开发测试用,性能差

lua 复制代码
pb.option("encode_order")

proto 管线

相关推荐
qq_4017004118 小时前
C语言void*
c语言·开发语言
sg_knight18 小时前
Python 面向对象基础复习
开发语言·python·ai编程·面向对象·模型
毕设源码-朱学姐19 小时前
【开题答辩全过程】以 基于Java的人体骨骼健康知识普及系统为例,包含答辩的问题和答案
java·开发语言
lly20240619 小时前
Julia 函数
开发语言
sheji341619 小时前
【开题答辩全过程】以 基于JAVA的社团管理系统为例,包含答辩的问题和答案
java·开发语言
周杰伦_Jay19 小时前
【GOFrame】模块化框架与生产级实践
开发语言·gitlab·github
Simon席玉19 小时前
C++的命名重整
开发语言·c++·华为·harmonyos·arkts
chao18984419 小时前
MATLAB中的多重网格算法与计算流体动力学
开发语言·算法·matlab
木盏19 小时前
三维高斯的分裂
开发语言·python
精神小伙就是猛19 小时前
C# sealed密封 追本溯源
开发语言·c#