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 管线

相关推荐
m0_748233175 小时前
C与C++:底层编程的六大核心共性
java·开发语言
沐知全栈开发5 小时前
HTTP Content-Type
开发语言
一切尽在,你来5 小时前
C++多线程教程-1.2.2 C++标准库并发组件的设计理念
开发语言·c++
m0_561359675 小时前
代码热更新技术
开发语言·c++·算法
兩尛5 小时前
c++知识点1
java·开发语言·c++
凯子坚持 c5 小时前
Qt常用控件指南(9)
开发语言·qt
ONE_PUNCH_Ge5 小时前
Go 语言泛型
开发语言·后端·golang
leaves falling6 小时前
c语言单链表
c语言·开发语言
独自破碎E6 小时前
【中心扩展法】LCR_020_回文子串
java·开发语言