rust-embedded / embedded-hal

A Hardware Abstraction Layer (HAL) for embedded systems
Apache License 2.0
2.01k stars 202 forks source link

embedded-io: API stability and 1.0.0 release #566

Open elast0ny opened 10 months ago

elast0ny commented 10 months ago

Hello, I'm working on a project that is considering using embedded-io's traits for no_std environments and had some concerns about the stability of the API.

For example, the popular postcard serde format supports embedded-io traits but only from version 0.4.0. This means that I either have to commit to an old version to use postcard or make a fork of postcard (and upstream fixes ideally). I assume this is a decision that anyone in the no_std ecosystem has to make if they want to be generic over Read/Write.

Is there any chance that embedded-io could take a stance on backwards compatibility of its Read/Write traits (as a statement in a README perhaps) and make a release of major version 1 ?

I understand that the crate may not be in such a state to be stable "forever" but if so, it would provide much more confidence in committing to using it.

chrysn commented 2 weeks ago

We'll have at least one more breaking change when Error becomes a subtrait of core::Error. I'm also not sure WriteReady are ready (ha!) for prime time.

Maintainers, we use this issue as a tracking issue to list what has to be done before -io 1.0?