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

相关推荐
思成不止于此4 分钟前
【C++ 数据结构】二叉搜索树:原理、实现与核心操作全解析
开发语言·数据结构·c++·笔记·学习·搜索二叉树·c++40周年
P***253919 分钟前
JavaScript部署
开发语言·前端·javascript
come112341 小时前
现代前端技术栈关系详解 (PHP 开发者特供版)
开发语言·前端·php
yong99901 小时前
基于互信息的Matlab多模态医学图像配准实现
开发语言·matlab
E***q5391 小时前
JavaScript数据挖掘开发
开发语言·javascript·数据挖掘
Lxinccode1 小时前
python(59) : 多线程调用大模型ocr提取图片文本
开发语言·python·图片提取文字·批量提取文件·多线程ocr
自由日记1 小时前
python简单线性回归
开发语言·python·线性回归
程序员-周李斌1 小时前
Java NIO [非阻塞 + 多路复用解]
java·开发语言·开源软件·nio
猪八戒1.01 小时前
onenet接口
开发语言·前端·javascript·嵌入式硬件
h***83932 小时前
JavaScript开源
开发语言·javascript·ecmascript