Several of the libraries in the project now are beginning to have somewhat duplicated code in the framing layer above the media itself. The same or similar algorithm exists in libcanard / libupdard / libserard / lib*ard for reorganizing frames into cohesive serialized messages w/ meta-data. I think it’s time we separated out those generic algorithms into something slightly more abstract so that the media access itself is not a dependency. This will allow anyone to implement cyphal over more media types and could leverage more usecases than just CAN/UDP/UART.
This would start as a garage project and move into being a first class library after it can be show to functionally match lib*ard.