-
Notifications
You must be signed in to change notification settings - Fork 63
Closed
Labels
enhancementAn improvement for livesplit-core.An improvement for livesplit-core.featureA new user visible feature for livesplit-core.A new user visible feature for livesplit-core.priority: highThis is a high priority issue.This is a high priority issue.
Description
We long term want to support compilation of livesplit-core with just core + alloc. You'd provide your own time source as some global handler but other than that everything should mostly just work as we already see with wasm32-unknown-unknown. However most crates that we depend on probably don't support this yet, so that's probably going to be a lot of Pull Requests.
Update
All the crates we need are sufficiently patched on forked branches. We just need to do a bunch of PRs now. Here's the super fancy results, with LiveSplit One being rendered within the world of Wind Waker:
https://twitter.com/CryZe107/status/1158444993549414401
Status
Basic Support
Required
- base64 - Released as 0.11.0, PR is merged Implement Support for no_std marshallpierce/rust-base64#111
- derive_more - Released as 0.99.0, PR is "merged" Fix no_std support JelteF/derive_more#84
- odds
- ordered-float
- palette - Released as 0.5.0, PR is merged Fix no_std build failure Ogeon/palette#138
- serde
- snafu - Released as 0.6.0, PR is merged Implement Support for no_std shepmaster/snafu#138
- hashbrown - Released as 0.6.0 (There might be some bug though ahash still doesn't work on no_std for me tkaitchuck/aHash#17)
- libm
Polyfilled (not required, but would be good to get rid of the polyfill)
- unicase - Released as 2.6.0, PR is merged Implement no_std support seanmonstar/unicase#34
- indexmap - Released as 1.3.0, PR is merged Support building without libstd indexmap-rs/indexmap#106 (but serde support is missing serde feature is incompatible with no_std indexmap-rs/indexmap#109)
- chrono - Released as 0.4.10, PR is merged Implement Support for no_std chronotope/chrono#341
Optional
- byteorder - Some IO.
- image - Too much IO.
- livesplit-hotkey - We don't really need it, but we can easily provide an empty hotkey implementation.
- livesplit-title-abbreviations
- parking_lot - Not really needed on no_std, does too many OS things.
- quick-xml - Too much IO.
- serde_json - Too much IO, but there is a PR: No_std support serde-rs/json#516
- utf-8 - Uses IO.
Rendering
- euclid - Released as 0.20.6, PR is merged Implement actual support for no_std servo/euclid#372
- num-traits - Released as 0.2.9, PR is merged Revive Float+Real in no_std thanks to libm rust-num/num-traits#99
- ttf-parser
- rustybuzz - PR is is merged, needs a release: Implement no_std support harfbuzz/rustybuzz#30
-
lyon - Needs a PR: https://github.com/CryZe/lyon/tree/no-stddepends on euclid-
sid - Released as 0.6.1, PR is merged Implement Support for no_std nical/sid#2
-
rusttype - Released as 0.8.0, PR is merged https://gitlab.redox-os.org/redox-os/rusttype/merge_requests/145-
stb_truetype - Released as 0.3.0, PR is merged https://gitlab.redox-os.org/redox-os/stb_truetype-rs/merge_requests/31
-
-
smallvec - Released as 0.6.11, PR is merged alloc is now stable servo/rust-smallvec#159
Software Rendering
- tiny-skia - Needs a PR
-
euc - Released as 0.5.0, PR is merged Implement properno_std
support zesterer/euc#12-
vek - Released as 0.10.0, PR is merged Implement Support for no_std yoanlcq/vek#41depends on num-traits
-
Metadata
Metadata
Assignees
Labels
enhancementAn improvement for livesplit-core.An improvement for livesplit-core.featureA new user visible feature for livesplit-core.A new user visible feature for livesplit-core.priority: highThis is a high priority issue.This is a high priority issue.