esp-rs/book

Elaborate on third-party crate compatibility

jessebraham opened this issue · 2 comments

In general most crates should work when using std, however in practice there seem to be some which rely on functionality which has yet to be implemented.

For example, supposedly the image crate fails with allocation errors during the encoding step (I have not confirmed this personally, but it was reported from the community).

This might be quite hard, especially in the case of image because there is no technical limitation as to why image won't work, but expecting to allocate tens of megabytes of RAM on an esp just isn't feasible.

I think the best we could do is mention real technical limitations, i.e rustls won't build on our platform because ring still uses some assembly that hasn't been ported to Xtensa or Riscv (https://github.com/briansmith/ring/blob/8d78cb2c01c964d6da8b522e6657b7f15b0c442d/build.rs#L35-L90).

Yeah I realize we can't say "these crates will work and these will not", but I feel we can give some guidelines at the very least. You gave two great examples already, and there are also other factors like "this underlying function is not implemented in esp-idf, so X won't work as a result".