librasn / rasn

A Safe #[no_std] ASN.1 Codec Framework
Other
212 stars 50 forks source link

rasn needlessly pulls in rayon as a dependency #359

Closed decryphe closed 1 week ago

decryphe commented 1 week ago

When I add a crate, I normally try to minimize the number of new dependencies that get pulled in.

When doing so, I noticed that rasn-derive depends on rayon. Investigating further shows that it only uses rayon once, to do a more convenient flat_map-operation. See: https://github.com/librasn/rasn/blob/main/macros/src/config.rs#L1259

Is this really necessary? Would a PR that removes this dependency be welcomed? I can do this maintenance task for you and change the offending passage to only depend on std.

Also, does rasn 0.18.0 actually not compile when configuring "default-features = false"? I'll need the derives, so it doesn't really affect me, but I noticed this because I normally start with no default features and then add what I need as I go.

Nicceboy commented 1 week ago

It seems like that this particular use case of rayon might not be that useful, so maybe it can be removed.

Also, does rasn 0.18.0 actually not compile when configuring "default-features = false"? I'll need the derives, so it doesn't really affect me, but I noticed this because I normally start with no default features and then add what I need as I go.

This is likely impossible use case and rasn will not compile currently since at least open type depends on those macros and the dependency is declared on other few places as well, so it should be changed.