当前位置: 首页 > news >正文

openYuanrong进阶教程——接口免序列化与反序列化

openYuanrong 官网:官网
gitcode仓库:仓库

接口免序列化与反序列化

openYuanrong 支持在使用Putinvoke接口时直接传入YR::Buffer类型的参数,此时可免序列化。
在使用Get接口时支持直接返回YR::Buffer类型,此时可免反序列化。这种方式可以有效提高接口性能。

Put接口中传入的YR::Buffer参数不能为空指针或 size 为0,否则会抛出异常 1001。

使用场景

  • Put接口传入YR::Buffer类型的参数,使用Get接口获取YR::Buffer类型的返回值。
  • Cpp 程序跨语言调用 Python 函数时,在invoke接口中传入YR::Buffer类型的参数,调用Get接口获取YR::Buffer类型的返回值。

使用示例

使用 Put/Get 接口

示例使用Put接口传入YR::Buffer类型的参数,然后调用Get接口获取YR::Buffer类型的返回值。

示例代码:

#include <string> #include "yr/yr.h" int main(int argc, char *argv[]) { YR::Init(YR::Config{}, argc, argv); YR::CreateParam param; param.writeMode = YR::WriteMode::NONE_L2_CACHE_EVICT; param.consistencyType = YR::ConsistencyType::PRAM; std::string str = "success"; YR::Buffer yrBuf(str.data(), str.length()); auto resRef = YR::Put(yrBuf, param); auto value = YR::Get(resRef); std::string result = std::string(static_cast<const char*>(value->ImmutableData()), value->GetSize()); std::cout << result << std::endl; YR::Finalize(); return 0; }

Cpp 程序中调用 Python 函数

这是一个 Cpp 程序跨语言调用 Python 函数的示例,在invoke接口中传入YR::Buffer类型参数,然后使用Get接口获取YR::Buffer类型的返回值。

示例代码:

importyrdefecho(str):returnstr
#include <string> #include "yr/yr.h" int main(int argc, char *argv[]) { YR::Init(YR::Config{}, argc, argv); YR::CreateParam param; param.writeMode = YR::WriteMode::NONE_L2_CACHE_EVICT; param.consistencyType = YR::ConsistencyType::PRAM; std::string str = "success"; YR::Buffer yrBuf(str.data(), str.length()); auto ret = YR::PyFunction<YR::Buffer>("common", "echo") .SetUrn("sn:cn:yrk:default:function:0-yr-stpython:$latest") .Invoke(yrBuf); auto value = YR::Get(ret); std::string result = std::string(static_cast<const char*>(value->ImmutableData()), value->GetSize()); std::cout << result << std::endl; YR::Finalize(); return 0; }
http://www.jsqmd.com/news/1082969/

相关文章:

  • 树莓派5接口全解析:从PCIe到GPIO的硬件连接与实战应用
  • 终极免费方案:9大网盘直链下载助手,让你告别龟速下载!
  • 巨有科技:市集社群运营技巧 把流动客流变为私域资产
  • 3步构建Unity游戏模组生态:跨运行时Mod加载解决方案
  • 3步掌握XUnity.AutoTranslator:让外语游戏秒变中文的终极解决方案
  • 浏览器指纹风控处理方案:从原理、误判到合规治理的系统化实践
  • 如何在Krita中快速掌握AI绘画:面向数字艺术家的完整指南
  • 身份证登报挂失有没有法律效应?身份证登报挂失怎么办理?
  • GPT-4.5不存在?一文厘清OpenAI官方模型体系与gpt-4o实战指南
  • 【零基础实战】FAISS 向量检索全流程通关:环境搭建 + 文本向量化 + 相似度检索,附生产级完整代码
  • 网盘直链下载助手:3分钟搞定九大网盘满速下载的零基础指南
  • LinkSwift:一键解锁八大网盘下载限速的终极解决方案
  • 告别网盘限速烦恼!9大主流网盘直链下载神器使用指南
  • YimMenu游戏助手完全指南:如何安全高效地增强你的GTA5体验
  • 移动应用登录接口逆向实战:从抓包到Frida Hook的完整安全分析
  • 0012.示波器探头未校准导致的问题
  • 初稿被导师打回 3 次?Gradpaper 在线改稿 + 降重调格式,半天搞定终稿
  • 抖音无水印下载终极方案:3分钟搞定批量下载与智能管理
  • 题解:AtCoder AT_awc0098_c Highway Discount Pass
  • AI智能体分类及其应用解析(8)
  • [Android] 高考志愿填报AI专家-智能填报志愿-一键测录取率
  • WeChatMsg:专业级微信聊天记录本地化保存与分析工具
  • AI智能体开始直接生成操作界面,金融机构业务系统的入口会发生什么变化?
  • CSRF漏洞深度解析:从原理到实战挖掘与防御
  • 计算机毕业设计之基于微信小程序的疫苗预约系统设计与实现
  • 年度必看!2026AI论文平台榜单(覆盖 99% 毕业生论文需求)
  • Java入门到精通Java 15中的 3 个双引号语法
  • 基于VisionPro Blob分析的地面裂痕视觉检测实战指南
  • Java毕设项目:基于 SpringBoot 的企业人事信息信息化管理平台的设计与实现 (源码+文档,讲解、调试运行,定制等)
  • Box64终极指南:让ARM设备也能畅玩x86游戏的秘诀