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

相关推荐
踏着七彩祥云的小丑3 小时前
pytest——Mark标记
开发语言·python·pytest
Dream of maid3 小时前
Python12(网络编程)
开发语言·网络·php
W23035765734 小时前
经典算法:最长上升子序列(LIS)深度解析 C++ 实现
开发语言·c++·算法
Y4090014 小时前
【多线程】线程安全(1)
java·开发语言·jvm
不爱吃炸鸡柳4 小时前
Python入门第一课:零基础认识Python + 环境搭建 + 基础语法精讲
开发语言·python
minji...4 小时前
Linux 线程同步与互斥(三) 生产者消费者模型,基于阻塞队列的生产者消费者模型的代码实现
linux·运维·服务器·开发语言·网络·c++·算法
Dxy12393102165 小时前
Python基于BERT的上下文纠错详解
开发语言·python·bert
wjs20246 小时前
JavaScript 语句
开发语言
cmpxr_7 小时前
【C】局部变量和全局变量及同名情况
c语言·开发语言