MessagePack.jsを調べて発見、もうひとつのバイナリフォーマット
BSON。ついでに、こちらもESモジュール化しておきました。
BSONは、
MongoDBの内部データとして使われているとのこと。

「code4fukui/BSON: BSON in JavaScript/ESM」
CBOR、MessagePackと同様、encode/decodeの呼び出しだけで使えます。
import { BSON } from "https://code4fukui.github.io/BSON/BSON.js";
const object = {
nil: null,
integer: 1,
float: Math.PI,
string: "Hello, world!",
binary: Uint8Array.from([1, 2, 3]),
array: [10, 20, 30],
map: { foo: "bar" },
timestampExt: new Date(),
};
const encoded = BSON.encode(object);
console.log(encoded);
const obj = BSON.decode(encoded);
console.log(obj);
バイナリデータフォーマット間でいろいろと比較してみるのも楽しそうですね。
links
- BSON (Binary JSON) Serialization
- BSON - Wikipedia
- CBORの元になった日本発バイナリフォーマット、MessagePack.js
- ブラウザでもサーバーでも気軽に使えるバイナリフォーマットCBORをESモジュールにした「CBOR-es」公開