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 在 开发工具 中
67 每月下载量
用于 8 个包 (6 个直接使用)
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 和更多。
达玛 LF
此包提供处理 Daml-LF
包的库。
不应直接使用此包,而是应该依赖 daml
包并启用 lf
或 lf-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 类型。
这些类型通常通过将现有的DarFile
、DamlLfArchive
或DamlLfArchivePayload
进行转换来构建,这些文件可以从文件中加载或从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_service
的GetPackage
方法从现有的账本中检索(见此处)。daml-grpc
创建提供daml_package_service
模块中此服务的实现。
daml-util
提供DamlPackages
辅助工具,简化从Daml账本下载包并将其转换为DarFile
或DamlLfArchive
或DamlLfArchivePayload
的过程。
版本
此库支持从 LanguageVersion
的 LanguageVersion::V1_0
到 LanguageVersion::V1_14
之间的所有 Daml-LF LanguageVersion
。
依赖关系
约 3-5.5MB
约 101K SLoC