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

goods-json

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

1 个不稳定版本

0.1.0 2021 年 2 月 1 日

#1872编码

MIT/Apache

3KB

goods

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

crates docs actions MIT/Apache loc

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

目标

这个 crate 的编写考虑以下目标

  • 提供所有功能。
    扩展 crate 提供各种有用的数据源,如 FileSourceReqwestSource。基于 Serde 的 Formatgoods-jsongoods-yamlgoods-ron 提供。

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

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

  • 处理异步数据源。
    原始数据源实现 Source 特性。 Source::read 方法返回一个将通过对资产进行轮询来完成的 future。

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

非目标

本软件包并不旨在支持所有可能的功能。以下是部分功能的列表

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

功能

除了核心特性和类型之外,所有开箱即用的功能都位于自己的 goods-* 软件包中。

资源

格式

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

示例

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

文件系统示例

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

文件系统示例

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

reqwest 示例

异步示例,使用 tokioreqwest 软件包通过 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许可证定义,您有意提交以包含在作品中的任何贡献,都将按照上述方式双重授权,不附加任何额外条款或条件。

依赖项

~1.6–2.2MB
~39K SLoC