5 个版本

0.2.2 2022年3月8日
0.2.1 2022年3月7日
0.2.0 2022年3月4日
0.1.1 2022年3月3日
0.1.0 2022年3月1日

#2475开发工具

Download history 59/week @ 2024-04-01 13/week @ 2024-04-08 18/week @ 2024-04-15 23/week @ 2024-04-22 23/week @ 2024-04-29 21/week @ 2024-05-06 19/week @ 2024-05-13 18/week @ 2024-05-20 12/week @ 2024-05-27 14/week @ 2024-06-03 18/week @ 2024-06-10 12/week @ 2024-06-17 25/week @ 2024-06-24 4/week @ 2024-07-01 6/week @ 2024-07-08 31/week @ 2024-07-15

67 每月下载量
用于 8 个包 (6 个直接使用)

Apache-2.0

2.5MB
9K SLoC

包含 (ZIP 文件, 510KB) TestingTypes-1_9_0-sdk_1_18_1-lf_1_14.dar,(ZIP 文件, 415KB) TestingTypes-1_0_0-sdk_0_13_36-lf_1_6.dar,(ZIP 文件, 380KB) TestingTypes-1_0_0-sdk_0_13_37-lf_1_7.dar,(ZIP 文件, 355KB) TestingTypes-1_0_0-sdk_0_13_55-lf_1_8.dar,(ZIP 文件, 365KB) TestingTypes-1_0_0-sdk_1_0_0-lf_1_8.dar,(ZIP 文件, 355KB) TestingTypes-1_0_0-sdk_1_0_1-lf_1_8.dar 和更多

Documentation Crate maintenance-status

达玛 LF

此包提供处理 Daml-LF 包的库。

不应直接使用此包,而是应该依赖 daml 包并启用 lflf-full 功能

[dependencies]
daml = { version = "0.2.2", features = [ "lf" ] }

许可证

daml-lf 在 Apache 许可证(版本 2.0)的条款下分发。

除非您明确声明,否则您根据 Apache-2.0 许可证定义的任何有意提交以供包括在内的贡献,均应按照上述方式双重许可,而不附加任何额外条款或条件。

有关详细信息,请参阅 LICENSE

版权 2022


lib.rs:

处理 Daml-LF 的库。

编译的 Daml 包表示为 Daml-LF(即“账本片段”)存档。存档是一个 protobuf 序列化的字节序列,通常存储在 dalf 文件中。可以将多个 dalf 存档与清单文件一起组合成一个 Dar(“达玛存档”)文件。

元素

element 模块包含所有达玛-LF 类型的更高层次表示,并提供了一些方便的方法,以简化使用来自 protobuf 定义的原始类型处理达玛-LF 类型。

这些类型通常通过将现有的DarFileDamlLfArchiveDamlLfArchivePayload进行转换来构建,这些文件可以从文件中加载或从Daml账本中下载。

以下示例中,example.dar从文件中加载,转换为DamlArchive,最后提取主包的id。

let dar = DarFile::from_file("Example.dar")?;
let package_id = dar.apply(|archive| archive.main_package_id().to_owned())?;

内联

内联数据由element项自动管理。在转换过程中,所有element项从底层源借用内联数据,因此每个元素不需要额外的分配。

然而,如果需要拥有的(即由'static限制的)版本,例如传递给线程或异步执行器,提供了DarFile::to_owned_archive方法来执行此转换并为每个element分配所需的所有内联数据的单独副本。

以下示例从文件中加载Example.dar,将其转换为适合传递给新线程的拥有的DamlArchive

let archive = DarFile::from_file("Example.dar")?.to_owned_archive()?;
thread::spawn(move || {
    dbg!(archive.name());
})

功能

以下功能被定义:

  • default 包含除Daml表达式之外的所有Daml-LF类型。
  • full 包含所有Daml-LF类型。

下载Daml包

序列化的Daml-LF存档也可以通过GRPC package_serviceGetPackage方法从现有的账本中检索(见此处)。daml-grpc创建提供daml_package_service模块中此服务的实现。

daml-util提供DamlPackages辅助工具,简化从Daml账本下载包并将其转换为DarFileDamlLfArchiveDamlLfArchivePayload的过程。

版本

此库支持从 LanguageVersionLanguageVersion::V1_0LanguageVersion::V1_14 之间的所有 Daml-LF LanguageVersion

依赖关系

约 3-5.5MB
约 101K SLoC