107 个版本 (重大变更)
新功能 0.76.0 | 2024 年 8 月 22 日 |
---|---|
0.74.0 | 2024 年 8 月 15 日 |
0.73.0 | 2024 年 7 月 31 日 |
0.64.2 | 2024 年 2 月 23 日 |
0.7.0 | 2021 年 3 月 31 日 |
在 解析器实现 中排名 247
每月下载量 4,127
在 9 个 crate 中使用 (直接使用 8 个)
175KB
4.5K SLoC
eszip
eszip 格式允许您无损地将 ECMAScript 模块图(由 deno_graph::ModuleGraph
表示)序列化成一个单一的压缩文件。
eszip 文件格式旨在紧凑且支持流式传输。这使得高效加载大型 ECMAScript 模块图成为可能。
https://eszip-viewer.deno.dev/ 是一个用于检查 eszip 文件的工具。
示例
创建 eszip
cargo run --example eszip_builder https://deno.land/std/http/file_server.ts file_server.eszip2
查看 eszip 的内容
cargo run --example eszip_viewer file_server.eszip2
将 eszip 加载到 V8
cargo run --example eszip_load file_server.eszip2 https://deno.land/std/http/file_server.ts
文件格式
文件格式如下所示
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) | )*
对于空的源代码/源代码映射条目,有一个优化。如果偏移量和大小都设置为 0,则该模块的数据部分中不包含条目和哈希。
开发
在提交 PR 时,请确保通过运行以下命令重新构建 Wasm:
deno task build
依赖项
~20–32MB
~545K SLoC