#assets #async #asset-manager #json-format #goods

goods-yaml

'goods' 资产管理器的 JSON 格式

1 个不稳定版本

0.1.0 2021年2月1日

#2123编码

MIT/Apache

3KB

goods

适用于多种环境的易于使用的资产管理器。

crates docs actions MIT/Apache loc

适用于多种环境的易于使用的资产管理器。

目标

此crate编写时考虑以下目标

  • 包含电池。
    扩展crate提供了各种有用的数据源,如FileSourceReqwestSource。由goods-jsongoods-yamlgoods-ron提供的基于Serde的Formatgoods-jsongoods-yamlgoods-ron提供。

  • 可扩展性。
    可以为任何资产类型(包括外部资产类型)实现多个Format特质。
    例如,JsonFormatYamlFormatRonFormat实现了任何资产类型的Format特质,其中中间表示形式实现了serde::de::DeserializeOwned

  • 支持 WebAssembly。
    此crate和一些扩展crate是WASM兼容的,并且不需要线程即可加载资产。带有Local前缀的类型和特质的远程要求是SendSync。它们可以在单线程环境中使用。专门添加以支持WASM,其中常见!Send!Sync类型。

  • 与异步数据源一起工作。
    原始数据源实现了Source特质。`Source::read`方法返回一个future,该future将通过轮询句柄来驱动资产完成。

  • 快速编译。
    核心crate (goods) 在执行 cargo clean 后构建,耗时约1秒。

非目标

此crate并不旨在支持所有可能的功能。以下是一些功能的列表

  • 热重载
    目前没有计划支持热重载。

功能

所有除核心特性和类型之外的功能都存在于各自的 goods-* crate中。

来源

格式

  • goods-json - 提供 JsonFormat - 将原始字节数据视为JSON文档,并通过serde反序列化资源表示。
  • goods-yaml - 提供 YamlFormat - 将原始字节数据视为YAML文档,并通过serde反序列化资源表示。
  • goods-ron - 提供 RonFormat - 将原始字节数据视为RON文档,并通过serde反序列化资源表示。

示例

提供了一些简单的示例,以便学习如何使用此crate。

fs示例

展示了如何使用 DataUrlSource 构建注册表并从其中加载简单的资源。

fs示例

展示了如何使用 FileSource 构建注册表并从其中加载简单的资源。

reqwest示例

异步示例,使用 tokioreqwest crate通过HTTP协议加载资源。

fetch示例

展示了如何使用Fetch API在浏览器中加载资源。

此示例可以使用build-wasm32.shbuild-wasm32.batexamples目录中构建。
wasm-bindgen(兼容版本)必须位于 PATH

cd examples
build-wasm32 fetch
python3 server.py

然后在您的浏览器中打开https://127.0.0.1:8000/fetch.html。加载的资源必须在页面上显示。否则请检查日志中的错误。

许可证

此存储库的许可证为以下之一

任您选择。

贡献许可

除非您明确声明,否则您提交的任何有意包括在作品中的贡献,如Apache-2.0许可证中定义,将按照上述方式双重许可,不附加任何额外条款或条件。

依赖关系

~2.5MB
~46K SLoC