#assets #async #asset-manager #source #goods #file

goods-fs

‘goods’资产管理器的文件源

1个不稳定版本

0.1.0 2021年2月1日

#4#goods

MIT/Apache

5KB
70

goods

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

crates docs actions MIT/Apache loc

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

目标

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

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

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

  • 支持WebAssembly。
    这个crate和一些扩展crate与WASM兼容,无需线程即可加载资产。使用前缀为 Local 的类型和trait远程 SendSync 满足需求和限制。它们可以用在单线程环境中。专门为WASM添加,其中 !Send!Sync 类型很常见。

  • 与异步数据源一起工作。
    原始数据源实现了 Source trait。 Source::read 方法返回一个future,将由轮询处理程序驱动完成以读取资产。

  • 快速编译。
    core crate (goods) 在执行 cargo clean 后构建大约需要1秒。

非目标

这个crate不旨在支持所有可能的功能。以下是一些这些功能

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

功能

除了核心特性和类型外,所有即用功能都存在于它们自己的 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

然后在您喜欢的浏览器中打开 http://localhost:8000/fetch.html。加载的资产必须在页面上显示。否则请查看日志中的错误。

许可证

此存储库受以下任一许可证的许可:

任选其一。

贡献许可

除非您明确说明,否则根据Apache-2.0许可证定义,您有意提交以包含在工作中的任何贡献,均应双重许可,无任何附加条款或条件。

依赖项

~1.5MB
~19K SLoC