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

相关推荐
农民小飞侠7 分钟前
python AutoGen接入开源模型xLAM-7b-fc-r,测试function calling的功能
开发语言·python
指尖流烟9 分钟前
C#调用图表的使用方法
开发语言·c#
敲代码不忘补水12 分钟前
Python 项目实践:简单的计算器
开发语言·python·json·项目实践
蒟蒻的贤21 分钟前
Web APIs 第二天
开发语言·前端·javascript
ljp_nan28 分钟前
QT --- 初识QT
开发语言·qt
ᅠᅠᅠ@33 分钟前
异常枚举;
开发语言·javascript·ecmascript
编程版小新39 分钟前
C++初阶:STL详解(四)——vector迭代器失效问题
开发语言·c++·迭代器·vector·迭代器失效
c4fx1 小时前
Delphi5利用DLL实现窗体的重用
开发语言·delphi·dll
鸽芷咕1 小时前
【Python报错已解决】ModuleNotFoundError: No module named ‘paddle‘
开发语言·python·机器学习·bug·paddle
Jhxbdks2 小时前
C语言中的一些小知识(二)
c语言·开发语言·笔记