MetaMessage 的簡單使用

简介: MetaMessage(mm)是一款轻量级CLI工具,支持JSONC与二进制MetaMessage格式的编/解码,以及多语言(Go/Java/TS/Python等)结构体代码自动生成,高效便捷,开箱即用。

簡單寫下cli的使用

先下載:
截屏2026-05-07 20.32.40.png

MetaMessage
改個名,方便使用:

mv mm_0.1.8_darwin_arm64 mm

一個簡單的jsonc:

cat input.jsonc 
{
   
 "a":2,
}

序列化:

./mm -e -i input.jsonc -o output.mm
Encoding Mode, Input: input.jsonc, Output: output.mm

看下大小:

ll output.mm

-rw-r--r--  1 lizongying  staff  5  5月  7 20:27 output.mm

反序列化:

./mm -d -i output.mm 
Decoding Mode, Input: output.mm, Output:
{
   
 "a": 2,
}

生成golang的結構體和綁定後的數據:

./mm -g -i input.jsonc -l go
Generation Mode, Input: input.jsonc, Output: , Target Language: go
// Code generated by mm. DO NOT EDIT.

package main

type Obj struct {
   
    A int
}

var _ = Obj{
   
    A: 2,
}

幫助信息:

./mm
Error: A mode must be specified! Valid options: -encode / -decode / -generate
Usage: ./mm [OPTIONS]

Mode (mutually exclusive, choose one):
 -encode, -e Encode JSONC to MetaMessage format
 -decode, -d Decode MetaMessage to JSONC format
 -generate, -g Generate value code from JSONC

Common Options:
 -in, -i string  Input file path (empty = read from stdin)
 -out, -o string Output file path (empty = write to stdout)
 -force, -f  Overwrite output file if it exists (default: false)

Generate Options (only for -gen):
 -lang, -l string  Target language (default: , support: go, java, ts, kt, py, js, cs, rs, swift, php)

Examples:
 # Encode JSONC to MetaMessage (stdin -> stdout)
 ./mm -encode -in input.jsonc -out output.MetaMessage
 # Decode MetaMessage to JSONC (stdin -> stdout)
 ./mm -decode < input.MetaMessage > output.jsonc
 # Generate Go struct from JSONC
 ./mm -gen -lang go -in input.jsonc -out output.go
 # Generate Java struct from JSONC
 ./mm -gen -lang java -in input.jsonc -out output.java
 # Generate Kotlin struct from JSONC
 ./mm -gen -lang kt -in input.jsonc -out output.kt
 # Generate Python struct from JSONC
 ./mm -gen -lang py -in input.jsonc -out output.py
 # Generate JavaScript class from JSONC
 ./mm -gen -lang js -in input.jsonc -out output.js
 # Generate C# class from JSONC
 ./mm -gen -lang cs -in input.jsonc -out output.cs
 # Generate Rust struct from JSONC
 ./mm -gen -lang rs -in input.jsonc -out output.rs
 # Generate Swift struct from JSONC
 ./mm -gen -lang swift -in input.jsonc -out output.swift
 # Generate PHP class from JSONC
 ./mm -gen -lang php -in input.jsonc -out output.php
目录
相关文章
|
21天前
|
JSON JavaScript 前端开发
在TypeScript和JavaScript如何使用MetaMessage?
MetaMessage 是一种跨语言数据交换协议,支持 TypeScript/JavaScript(通过装饰器自动类型转换)、JSONC 文本与紧凑二进制 wire 格式,兼顾可读性、精度(如 bigint 表示 int64)与性能,旨在替代 JSON、Protobuf 等传统序列化方案。
213 125
|
1月前
|
人工智能 弹性计算 JSON
Hermes Agent/OpenClaw 阿里云部署及飞书集成、权限配置+自动化场景指南
OpenClaw(原Clawdbot)作为2026年最热门的开源AI智能体,在最新v2026.2.12版本中实现了飞书通道的原生支持,无需额外开发Webhook或依赖第三方插件,即可与飞书生态深度打通,实现消息收发、日程创建、文档协作、群聊管理等全场景自动化。对于企业用户和团队而言,将OpenClaw部署在阿里云上并接入飞书,既能享受云端的高稳定性与低延迟,又能让AI助手无缝融入日常办公流程,大幅提升协作效率。
367 3
|
1月前
|
人工智能 数据可视化 API
阿里云Hermes Agent部署安装选择轻量应用服务器还是无影云电脑?
阿里云Hermes Agent提供轻量应用服务器与无影云电脑两种一键部署方案,阿里云官方活动:https://t.aliyun.com/U/OTnSAH 零代码、全可视化,支持自进化、持久记忆、多模型兼容及多端接入。个人开发者选轻量(24小时在线/低成本),职场人选无影(多端即开即用),快速拥有专属AI智能体。
148 0
|
9月前
|
人工智能 监控 安全
AI创业公司如何突破算力瓶颈,实现高效发展?
AI创业公司如何在算力竞争中突围?本文揭示真正决定生死的关键在于“用好”算力,而非单纯依赖算力规模。通过混合云调度、GPU虚拟化、边缘推理、跨云高速通道等技术手段,提升算力利用率,降低成本,同时保障数据合规与高效传输。结合垂直场景的深刻理解与技术调度能力,创业公司也能构建坚实护城河,实现快速发展。
|
存储 编解码 资源调度
鸿蒙相机开发实战:从设备适配到性能调优 —— 我的 ArkTS 录像功能落地手记(API 15)
本文分享鸿蒙相机开发经验,从环境准备到核心逻辑实现,涵盖权限声明、模块导入、Surface关联与分辨率匹配,再到录制控制及设备适配法则。通过实战案例解析,如旋转补偿、动态帧率调节和编解码优化,帮助开发者掌握功能实现、设备适配与体验设计三大要点,减少开发坑点。适合鸿蒙新手及希望深化硬件交互能力的工程师参考收藏。
661 2
|
C++ 计算机视觉
OpenCV-图像色温
OpenCV-图像色温
724 0
|
安全 Java Go
最新进展:Go arena 手动管理内存,鸽了!
最新进展:Go arena 手动管理内存,鸽了!
|
数据挖掘 Python
【Python】应用:pyproj地理计算库应用
这篇博客介绍了 `pyproj` 地理计算库的应用,涵盖地理坐标系统转换与地图投影。通过示例代码展示了如何进行经纬度与UTM坐标的互转,并利用 `pyproj.Geod` 计算两点间的距离及方位角,助力地理数据分析。 安装 `pyproj`:`pip install pyproj`。更多内容欢迎关注本博客,一起学习进步! Pancake 🍰 不迷路。😉*★,°*:.☆( ̄▽ ̄)/$:*.°★* 😏
685 1
|
Ubuntu Linux 测试技术
探索Linux中的`dbus-send`命令
`dbus-send`是Linux中用于进程间通信的D-Bus系统的命令行工具,允许应用程序通过消息总线相互交互。要安装它,可以使用包管理器(如`apt-get`或`dnf`)。基本语法包括指定总线类型、目标服务、消息类型、对象路径、接口及方法等。示例用法包括使用`dbus-send`来锁定屏幕(通过调用`org.gnome.ScreenSaver.Lock`)和设置音量(通过与PulseAudio服务交互)。在使用时,需了解目标服务的接口和方法,并确保具备相应权限。
1147 10
|
网络协议 安全 物联网