#deno #zip #module #graphs #store #javascript #javascript-and-typescript

eszip

A utility that can download JavaScript and TypeScript module graphs and store them locally in a special zip file

152 releases (breaking)

Uses new Rust 2024

new 0.120.0 Mar 27, 2026
0.118.0 Mar 19, 2026
0.106.0 Dec 8, 2025
0.105.0 Nov 27, 2025
0.7.0 Mar 31, 2021

#182 in Compression

Download history 3978/week @ 2025-12-05 4060/week @ 2025-12-12 2290/week @ 2025-12-19 1367/week @ 2025-12-26 2457/week @ 2026-01-02 2919/week @ 2026-01-09 4024/week @ 2026-01-16 3452/week @ 2026-01-23 5680/week @ 2026-01-30 3232/week @ 2026-02-06 643/week @ 2026-02-13 964/week @ 2026-02-20 1626/week @ 2026-02-27 2479/week @ 2026-03-06 1108/week @ 2026-03-13 820/week @ 2026-03-20

6,188 downloads per month
Used in 12 crates (10 directly)

MIT license

695KB
18K SLoC

eszip

The eszip format lets you losslessly serialize an ECMAScript module graph (represented by deno_graph::ModuleGraph) into a single compact file.

The eszip file format is designed to be compact and streaming capable. This allows for efficient loading of large ECMAScript module graphs.

https://eszip-viewer.deno.dev/ is a tool for inspecting eszip files.

File format

The file format looks as follows:

Eszip:
| Magic (8) | Header size (4) | Header (n) | Header hash (32) | Sources size (4) | Sources (n) | SourceMaps size (4) | SourceMaps (n) |

Header:
( | Specifier size (4) | Specifier (n) | Entry type (1) | Entry (n) | )*

Entry (redirect):
| Specifier size (4) | Specifier (n) |

Entry (module):
| Source offset (4) | Source size (4) | SourceMap offset (4) | SourceMap size (4) | Module type (1) |

Sources:
( | Source (n) | Hash (32) | )*

SourceMaps:
( | SourceMap (n) | Hash (32) | )*

There is one optimization for empty source / source map entries. If both the offset and size are set to 0, no entry and no hash is present in the data sections for that module.

Dependencies

~34–51MB
~796K SLoC