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

goods-ron

用于'goods'资产管理器的RON格式

1个不稳定版本

0.1.0 2021年2月1日

#2312 in 编码

MIT/Apache

3KB

goods

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

crates docs actions MIT/Apache loc

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

目标

本库编写时考虑以下目标

  • 包含电池。
    扩展库提供各种有用的数据源,如FileSourceReqwestSource。由Serde支持的Formatgoods-jsongoods-yamlgoods-ron提供。

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

  • 支持WebAssembly。
    本库和某些扩展库与WASM兼容,并且不需要线程即可进行资产加载。带有Local前缀的类型和特质满足SendSync要求。它们可以在单线程环境中使用。特别添加以支持WASM,其中常见的类型是带有!Send!Sync的类型。

  • 与异步数据源一起工作。
    原始数据源实现了Source特质。方法Source::read返回一个未来对象,该对象将由轮询句柄驱动完成,以加载资产。

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

非目标

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

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

功能

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

来源

格式

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

示例

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

fs 示例

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

fs 示例

演示了如何使用 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许可证定义,您有意提交并包含在本工作中的任何贡献,将按照上述方式双重许可,不附加任何额外条款或条件。

依赖项

约3MB
约54K SLoC