Y3 快速和低 CPU 损耗的编解码器开源项目

我要开发同款
匿名用户2021年10月21日
187阅读

技术信息

开源地址
https://gitee.com/yomorun/y3-codec-golang
授权协议
Apache-2.0

作品详情

Y3是一种 YoMoCodec 的Golag实现,它描述了个快速和低CPU损耗的编解码器,专注于边缘计算和流处理。

查看explaier获取更多信息,了解更多与 YoMo 组合的方式。

Y3Codec查看 Y3CodecSPEC

测试gotest./...使用goget-ugithub.com/yomoru/y3-codec-golag编码例子packagemaiimport("fmt"y3"github.com/yomoru/y3-codec-golag")fucmai(){//ifwewattorepeset`varobj=&foo{ID:-1,bar:&bar{Name:"C"}}`//iY3-Codec://0x81->odevarfoo=y3.NewNodePacketEcoder(0x01)//0x02->foo.ID=-11varyp1=y3.NewPrimitivePacketEcoder(0x02)yp1.SetIt32Value(-1)foo.AddPrimitivePacket(yp1)//0x83->&bar{}varbar=y3.NewNodePacketEcoder(0x03)//0x04->bar.Name="C"varyp2=y3.NewPrimitivePacketEcoder(0x04)yp2.SetStrigValue("C")bar.AddPrimitivePacket(yp2)//->foo.bar=&barfoo.AddNodePacket(bar)fmt.Pritf("res=%#v",foo.Ecode())//res=[]byte{0x81,0x08,0x02,0x01,0x7F,0x83,0x03,0x04,0x01,0x43}}解码例子1:解码一个原始数据包packagemaiimport("fmt"y3"github.com/yomoru/y3-codec-golag")fucmai(){fmt.Pritl(">>Parsig[0x0A,0x01,0x7F],whichlikeKey-Valueformat=0x0A:127")buf:=[]byte{0x0A,0x01,0x7F}res,_,err:=y3.DecodePrimitivePacket(buf)v1,err:=res.ToUIt32()iferr!=il{paic(err)}fmt.Pritf("TagKey=[%#X],Value=%v\\",res.SeqID(),v1)}解码例子2:解码一个节点数据包packagemaiimport("fmt"y3"github.com/yomoru/y3-codec-golag")fucmai(){fmt.Pritl(">>Parsig[0x84,0x06,0x0A,0x01,0x7F,0x0B,0x01,0x43]EQUALSJSON=0x84:{0x0A:-1,0x0B:'C'}")buf:=[]byte{0x84,0x06,0x0A,0x01,0x7F,0x0B,0x01,0x43}res,_,err:=y3.DecodeNodePacket(buf)v1:=res.PrimitivePackets[0]p1,err:=v1.ToIt32()iferr!=il{paic(err)}fmt.Pritf("TagKey=[%#X.%#X],Value=%v\\",res.SeqID(),v1.SeqID(),p1)v2:=res.PrimitivePackets[1]p2,err:=v2.ToUTF8Strig()iferr!=il{paic(err)}fmt.Pritf("TagKey=[%#X.%#X],Value=%v\\",res.SeqID(),v2.SeqID(),p2)}性能与JSON的性能比较:yomo-y3-stress-testig与ProtoBuffer的性能比较:y3-protobuf-testig

功能介绍

Y3 是一种 YoMo Codec 的 Golang 实现,它描述了个快速和低 CPU 损耗的编解码器,专注于边缘计算和流处理。 查看 explainer 获取更多信息,了解更多与 YoMo 组...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论