Binary data packing and unpacking.
jpacks 一款强大的二进制结构编解码工具
支持复杂的结构:
e.g.
// 定义结构
jpacks.def('User', {
age: 'uint8',
token: jpacks.array('byte', 10),
name: jpacks.shortString,
note: jpacks.longString,
contacts: jpacks.shortArray('User')
});
var user = {
age: 6,
token: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
name: 'ss',
note: '你好世界!Hello World!',
contacts: [{
age: 10,
token: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
name: 'nn',
note: '风一样的孩子!The wind of the children!',
contacts: [{
age: 12,
token: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
name: 'zz',
note: '圣斗士星矢!Saint Seiya!',
contacts: []
}]
}, {
age: 8,
token: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
name: 'cc',
note: '快乐的小熊!Happy bear!',
contacts: []
}]
};
// 组包
var buffer = jpacks.pack('User', user);
// 解包
var user2 = jpacks.unpack('User', buffer);
console.log(JSON.stringify(user2, null, ' '));
- Supports running in NodeJS and Browser. 支持运行在 NodeJS 和浏览器环境。
- Can be nested definition. 支持嵌套定义。
- Commonly used numerical types, including signed and unsigned. 常用的数值类型,包括有符号和无符号。
- Supports array types, including fixed length or indefinite. 支持数组类型,包括定长或不定长。
- Int64. 大整数处理。
- Protocol Buffers. 支持处理 PB 协议。
- Data compression and decompression. 数据压缩和解压。
MIT © zswang