-
Notifications
You must be signed in to change notification settings - Fork 87
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RFC: Thoughts on Postcard 2.0? #128
Comments
The cost of option 2 seems very low to users. Each project I update would only be looking at 2-5 lines to change, and the changes would be very similar from project to project. If it makes maintenance easier and opens the door to more features it seems like an obviously good choice to me. The cost of option 3 is higher, but the cost of making that change is only ever going to go up. This seems to me like a "best time to plant a tree" type situation. Personally, when I make a change around postcard it's because I'm changing the data. Since that means changing both sides of the communication, there isn't actually any cost to a wire protocol change. On the other hand I don't think I've ever sent a char with postcard, so the char issue doesn't actually seem like that much of an issue. |
Yeah, there is IMO so little urgency for a breaking wire change, I almost want to skip it out of principle.
I'm a little less convinced of this: if people have devices in the field, and they want to update their host and SOME devices, I don't want them to be worried about compat issues, and have to manually audit that they never use |
I don't disagree with anything there. For more context, currently I only use postcard to communicate between a linux host and a 2040 on the same board. If I'm deploying an update to the micro, I have to send it through the linux host, and I'll always be sending a new binary for the linux side anyway. |
I'd vote for Option 2 and due to a reliance on postcard in channel-bridge How far away do you think we are from Postcard 2.0? months or...? |
Hi @bsodmike, the current answer is "at some point when I have time". |
Adding as a bit of a wishlist item: I'd love to be able to do CRC+COBS+magic number header simpler. Right now I'm just using a copypasted version of Edit: that'd also make #135 a bit less of an issue because CRC would catch the corruption before |
I put up a blog post calling for sponsors for postcard v2.0: https://onevariable.com/blog/postcard-2-sponsors/ |
Hi James, how goes the hunt for sponsors btw? I'm happy to lend a hand, I'm still picking up the ropes but keen to learn etc. This is my most recent work but it's just a wrapper over Embassy https://github.com/bsodmike/rv8803-rs Best, |
Due to some of the dependency stuff, I am considering doing a 2.0 breaking change to the postcard crate. This would allow me to make public API changes to make dependencies, particularly for those that are required for
flavors
, likeheapless
, orembedded-io
, to be versioned, so that updating them does not cause future breaking changes.This would not be a breaking change to the wire format: Postcard 1.x and Postcard 2.x users would be able to mutually send messages with no compatibility issues, but there WOULD be breaking API changes, so some code changes could be required for updating.
As I see it, the options today are:
to_vec()
that is for heapless v0_7)char
encoding #101, but we can fix the other stuffIf you use postcard, I'd like to hear your opinion! Unless someone is willing to do the work for option 1, or willing to sponsor the work for 1, or makes a suggestion for another option, I'll probably go with 2.
Tagging some related issues:
O
type parameter ofserialize_with_flavor
#103The text was updated successfully, but these errors were encountered: