1个不稳定版本
| 0.1.0 | 2021年2月1日 |
|---|
#2312 in 编码
3KB
goods
适用于多种环境的易于使用的资产管理器。
适用于多种环境的易于使用的资产管理器。
目标
本库编写时考虑以下目标
-
包含电池。
扩展库提供各种有用的数据源,如FileSource和ReqwestSource。由Serde支持的Format由goods-json、goods-yaml和goods-ron提供。 -
可扩展性。
可以为任何资产类型实现多个Format特质,包括外部的资产类型。
例如,JsonFormat、YamlFormat和RonFormat实现了任何资产类型的Format特质,其中中间表示实现了serde::de::DeserializeOwned。 -
支持WebAssembly。
本库和某些扩展库与WASM兼容,并且不需要线程即可进行资产加载。带有Local前缀的类型和特质满足Send和Sync要求。它们可以在单线程环境中使用。特别添加以支持WASM,其中常见的类型是带有!Send和!Sync的类型。 -
与异步数据源一起工作。
原始数据源实现了Source特质。方法Source::read返回一个未来对象,该对象将由轮询句柄驱动完成,以加载资产。 -
快速编译。
核心包(goods)在执行cargo clean命令后构建,耗时约 1 秒。
非目标
此包并非旨在支持所有可能的功能。以下是一些功能列表
- 热重载
目前没有计划支持热重载。
功能
除了核心特性和类型之外的所有开箱即用的功能都位于它们自己的 goods-* 包中。
来源
goods-dataurl- 提供了DataUrlSource- 从 URL 直接读取嵌入的数据。goods-fs- 提供了FileSource- 从文件系统中加载资产字节。goods-reqwest- 提供了ReqwestSource- 使用reqwest从 URL 加载资产字节。在这种情况下应使用tokio运行时来轮询 future。goods-fetch- 提供了FetchSource- 使用浏览器的 Fetch API 加载资产数据。
格式
goods-json- 提供了JsonFormat- 将原始字节视为 JSON 文档,并通过 serde 反序列化资产表示。goods-yaml- 提供了YamlFormat- 将原始字节视为 YAML 文档,并通过 serde 反序列化资产表示。goods-ron- 提供了RonFormat- 将原始字节视为 RON 文档,并通过 serde 反序列化资产表示。
示例
提供了一些简单的示例,以学习如何使用此包。
fs 示例
演示了如何使用 DataUrlSource 构建注册表并从其中加载简单的资产。
fs 示例
演示了如何使用 FileSource 构建注册表并从其中加载简单的资产。
reqwest 示例
异步示例,使用 tokio 和 reqwest 包通过 HTTP 协议加载资产。
fetch 示例
演示了如何使用 Fetch API 在浏览器中加载资产。
此示例可以使用 build-wasm32.sh 或 build-wasm32.bat 在 examples 目录中构建。
wasm-bindgen(兼容版本)必须在 PATH
cd examples
build-wasm32 fetch
python3 server.py
然后在您的浏览器中打开 https://:8000/fetch.html。加载的资产必须在页面上显示。否则,查看日志中的错误。
许可
此存储库受以下任一许可的约束
- Apache许可证版本2.0,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT 或 https://open-source.org.cn/licenses/MIT)
由您自行选择。
贡献许可
除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交并包含在本工作中的任何贡献,将按照上述方式双重许可,不附加任何额外条款或条件。
依赖项
约3MB
约54K SLoC