A super efficient, high-performance binary parser for Socket.IO based on the MessagePack specification.
This parser is designed to be a modern, lightweight replacement for the default JSON parser, significantly reducing the payload size of real-time Socket.IO communication while remaining fully protocol-compatible.
Instead of just shortening keys, this version maps type, nsp, data, and id to fixed array indices. By stripping keys entirely before encoding with notepack.io, overhead is reduced to the absolute physical minimum.
- JSON: 29
- MsgPack: 36
- Compact: 22
- JSON: 133
- MsgPack: 111
- Compact: 97
- JSON: 10697
- MsgPack: 6921
- Compact: 6907
- Small: 0.465ms
- Medium: 0.101ms
- Large: 5.007ms
npm install socket.io-compact-parserYou can include the parser directly in your HTML via unpkg.
<script src="https://unpkg.com/socket.io-compact-parser/dist/browser.min.js"></script>import { Server } from "socket.io";
import CompactParser from "socket.io-compact-parser";
const io = new Server(server, {
parser: CompactParser
});import { io } from "socket.io-client";
import CompactParser from "socket.io-compact-parser";
const socket = io({
parser: CompactParser
});<script src="/socket.io/socket.io.js"></script>
<script src="https://unpkg.com/socket.io-compact-parser/dist/browser.min.js"></script>
<script>
const socket = io({
parser: SocketIOCompactParser
});
</script>- Supports both ES Modules (ESM) and CommonJS (CJS).
- Keyless binary encoding (Array-indexed).
- Full Socket.IO Protocol v5 compatibility.
- Automatic Buffer/Uint8Array handling via notepack.io.
- Minimal browser footprint with @socket.io/component-emitter.
This project is licensed under the MIT License.
- Wilco Joosen (computer-wilco)