cberner / raptorq

Rust implementation of RaptorQ (RFC6330)
Apache License 2.0
264 stars 47 forks source link

feat: support no_std #143

Closed Slesarew closed 1 year ago

Slesarew commented 1 year ago

metal feature supports no_std in configuration default-features = false, features = ["metal"]. Float calculation is done via micromath crate.

All previously available functionality remains under default std feature.

Some tweaking of python and wasm features was done to compile tests.

cberner commented 1 year ago

Looks interesting. I don't have any experience using no_std so have a bunch of questions. To start with though, what's your use case for this functionality?

Slesarew commented 1 year ago

We use it as de-facto industry standard now around Substrate ecosystem.

no-std goes into Kampela device firmware (here). There, metadata is sent as a bunch of NFC packets into airgapped baremetal signing device to let the user see what they are signing. It is baremetal just to reduce attack surface and save some power and memory along the way. Thus we are compiling it to Cortex-M33 target, our particular chip even has some floating point support.

cberner commented 1 year ago

Merged. Thanks!