-
Notifications
You must be signed in to change notification settings - Fork 70
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
Fully migrate the whole repo from bytes 0.4 to bytes 0.5 #626
Comments
Been looking out for For the serialization there seems to be some duplication between interledger-packet and interledger-btp, possibly other crates as well. I'll try to see if there's a way forward to unify the duplication and turn some parts like "length of length" constant time before any upgrades.. |
I failed to add a comment on #690 but to explain about the BytesMut usage: |
Currently the biggest subtask of #140 is the removal of our duplicated
bytes
dependency.bytes
is a library for zero-copy network protocols. Most of our crates depend on it directly, and all of them depend on it indirectly via its use in interledger-packet, which is the root of our workspace dependencies. interledger-packet uses bytes for zero-copy handling of ILP packets, so it's fundamental to the library. However, when Rust stabilized async/await, the Rust async ecosystem updated tobytes
v0.5, which has some big changes compared tobytes
v0.4, which is what interledger-rs was originally written to use. As part of our massive async/await migration, v0.5 was used only where necessary and shims were put into place for interoperation with code that used v0.4 but that otherwise didn't need to be touched. These shims are not entirely zero-copy, so to reclaim the original intent of the design of interledger-packet it would be nice to fully migrate to v0.5.As of this writing here are the libraries that explicitly depend on v0.4:
Here is a non-comprehensive overview of the incompatible changes between v0.4 and v0.5: https://github.com/tokio-rs/bytes/releases/tag/v0.5.0
Here's a WIP PR that ports interledger-packet alone to v0.5 that may be used as a base for a full migration (however, note that it's still not entirely zero-copy; see the TODO comments): https://github.com/interledger-rs/interledger-rs/pull/625/files
The text was updated successfully, but these errors were encountered: