bevyengine / bevyengine/bevy

Tracking Issue: `no_std` for `bevy_asset`

Open
#18,978 1 comment 1 reaction 1 assignee Claimed by @bushrat011899 View on GitHub
A-Assets C-Feature D-Complex O-Embedded S-Needs-Design
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 16h
Merged PRs (30d)
171

Description

# Motivation

`bevy_asset` is a key crate within Bevy that makes heavy usage of `std`, making it challenging to add `no_std` support to. This is a tracking issue to document what I anticipate will be a lengthy process.

## End Goal

- To support some subset of `bevy_asset` on `no_std` targets, such as `wasm32v1-none`

## Tasks

Below are some particular tasks which will need to be accomplished prior to `no_std` support. They are in no particular order.

- [ ] [Remove or make optional `parking_lot`](https://github.com/bevyengine/bevy/pull/18996)
- [ ] [Add `no_std` support to `ron`](https://github.com/ron-rs/ron/pull/567)
- Handle the following incompatible dependencies:
- [ ] `async-broadcast`
- [ ] `async-fs`
- [ ] `crossbeam-channel`
- [ ] `futures-io`
- [ ] Make `AssetPath` independent of `std::path::Path` (Cart has previously expressed that `AssetPath` should always be valid UTF-8 _and_ only use `/` as its path separator, implying `str` is a suitable backend)
- [ ] Make `bevy_asset` independent of `std::io::Error`.
- [ ] Feature-gate built-in filesystem IO support (`std::fs`)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.