目录

moonbin

moonbin 是一个面向 MoonBit 的轻量级二进制序列化与反序列化库。

安装

moon add hourizon/moonbin@0.1.0

在 mooncakes.io 查看 hourizon/moonbin

项目第一版聚焦于一件事:

BinValue <-> Bytes

moonbin 会定义一套紧凑、可文档化、可测试的自定义二进制格式,用于表示常见结构化数据。它不依赖运行时反射,不实现 protobuf,也不重复 MoonBit 官方 JSON 能力。

当前范围

  • 提供 BinValue 通用数据模型和 DecodeError 错误模型
  • 实现 moonbin v1 二进制格式
  • 支持 Null、Bool、Int、Double、String 和 Bytes
  • 支持 Array 和 Object 的递归编解码
  • 对非法标签、非法 Bool、截断输入、非法 UTF-8 和尾随字节返回明确错误
  • 支持通过 DecodeLimits 限制嵌套深度、集合数量和值长度

用户自定义结构体可以通过显式转换函数接入:

User <-> BinValue <-> Bytes

快速使用

let value = BinValue::Object([
  ("name", BinValue::String("Hou")),
  ("age", BinValue::Int(18)),
])
let bytes = encode(value)
let decoded = decode(bytes)

运行仓库内的完整示例:

moon run cmd/demo

文档

关于

moonbin 是一个面向 MoonBit 的轻量级二进制序列化与反序列化工具库,提供 BinValue 数据模型、自定义二进制格式、字节读写组件和编码解码框架,用于网络通信、本地缓存和结构化数据交换等场景。

116.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号