High-performance MessagePack serializer for Keyv using msgpackr
@keyv/serialize-msgpackr is a serialization adapter for Keyv powered by msgpackr. It uses the MessagePack binary format for high-performance serialization with rich type support.
In addition to all standard JSON types, msgpackr supports:
DateRegExpMapSetErrorundefinedNaN,Infinity,-Infinity
Binary data is base64-encoded for compatibility with string-based storage adapters.
npm install @keyv/serialize-msgpackrNote:
keyvis a peer dependency and must be installed alongside this package.
import Keyv from 'keyv';
import { msgpackrSerializer } from '@keyv/serialize-msgpackr';
const keyv = new Keyv({ serialization: msgpackrSerializer });
// Store a Date — it comes back as a Date, not a string
await keyv.set('date', new Date('2024-01-15'));
const date = await keyv.get('date');
console.log(date instanceof Date); // true
// Store a Map
await keyv.set('map', new Map([['a', 1], ['b', 2]]));
const map = await keyv.get('map');
console.log(map instanceof Map); // true
console.log(map.get('a')); // 1
// Store a Set
await keyv.set('set', new Set([1, 2, 3]));
const set = await keyv.get('set');
console.log(set instanceof Set); // trueA class that implements the KeyvSerializationAdapter interface from keyv.
import { KeyvMsgpackrSerializer } from '@keyv/serialize-msgpackr';
const serializer = new KeyvMsgpackrSerializer();Serializes a value to a base64-encoded MessagePack string using msgpackr.
Deserializes a base64-encoded MessagePack string back to its original value with all types restored.
A default KeyvMsgpackrSerializer instance, ready to use.
import { msgpackrSerializer } from '@keyv/serialize-msgpackr';