Closed mkolopanis closed 8 months ago
Your proposal is fine with me, I don't have a strong opinion about it :)
In the project where I use CFDP, I have a simplified config which does not use any of the CFDP constructs. For example TransmissionMode is hardcoded to Acknowledged. Then in the crate which loads the daemon, I convert from my simplified config to the CFDP constructs. But I will have no problem if you split it into two crates.
I've run into this issue a few times working on a mission of mine. Where I want a utility crate or some methods to use parts of the configuration options like TransmissionMode or have access to Primitives. In the current scheme this adds the entire daemon code as a dependency, including the all tokio features.
Maybe it is worth breaking the "executable" parts into a separate crate. My current thought is that the daemon and transaction code code move to a crate like
cfdp-daemon
but leave basically all the public points of the code (enums, structs, etc) incfdp-core
.This would be a big structural change, but considering that only @xpromache and myself seem to use this at the moment maybe it is worth it to do sooner. Thoughts would be appreciated if you have a strong opinion @xpromache.