1个不稳定版本
0.1.0 | 2021年2月1日 |
---|
#4 在 #goods
5KB
70 行
goods
适用于多种环境的易于使用的资产管理器。
适用于多种环境的易于使用的资产管理器。
目标
这个crate的编写考虑以下目标
-
内置电池。
扩展crate提供了各种有用的数据源,例如FileSource
和ReqwestSource
。由goods-json
、goods-yaml
和goods-ron
提供基于Serde的Format
。 -
可扩展性。
可以为任何资产类型实现多个Format
traits,包括外部资产类型。
例如JsonFormat
、YamlFormat
和RonFormat
实现了Format
trait,任何资产类型的中介表示实现了serde::de::DeserializeOwned
。 -
支持WebAssembly。
这个crate和一些扩展crate与WASM兼容,无需线程即可加载资产。使用前缀为Local
的类型和trait远程Send
和Sync
满足需求和限制。它们可以用在单线程环境中。专门为WASM添加,其中!Send
和!Sync
类型很常见。 -
与异步数据源一起工作。
原始数据源实现了Source
trait。Source::read
方法返回一个future,将由轮询处理程序驱动完成以读取资产。 -
快速编译。
core crate (goods
) 在执行cargo clean
后构建大约需要1秒。
非目标
这个crate不旨在支持所有可能的功能。以下是一些这些功能
- 热重载
目前没有计划支持热重载。
功能
除了核心特性和类型外,所有即用功能都存在于它们自己的 goods-*
包中。
资源
goods-dataurl
- 提供DataUrlSource
- 从直接嵌入到 URL 的数据中读取。goods-fs
- 提供FileSource
- 从文件系统中加载资产字节数据。goods-reqwest
- 提供ReqwestSource
- 使用reqwest
从 URL 加载资产字节数据。在这种情况下应使用tokio
运行时来轮询 futures。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
然后在您喜欢的浏览器中打开 http://localhost:8000/fetch.html。加载的资产必须在页面上显示。否则请查看日志中的错误。
许可证
此存储库受以下任一许可证的许可:
- Apache License, Version 2.0, (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献许可
除非您明确说明,否则根据Apache-2.0许可证定义,您有意提交以包含在工作中的任何贡献,均应双重许可,无任何附加条款或条件。
依赖项
~1.5MB
~19K SLoC