-
Notifications
You must be signed in to change notification settings - Fork 275
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
Add yamux specification #519
Conversation
914b94d
to
6aaf9aa
Compare
That's fine. Doesn't block the spec, as it's a SHOULD anyway. |
Just remembered that this is missing the protocol identifier that we use. Will add. |
Agreed. I only mentioned it for visibility. |
Any other people I should add to the interest group? |
Does it really make sense to copy the yamux spec here? It's not like we copied the quic spec in this repo for instance, we just specified how it's used inside libp2p |
I see your point. The QUIC spec is hosted by the IETF though which I'd consider more trustworthy and I am sure there are other copies of it around too. The yamux spec is owned by an unrelated GitHub account so I figured copying is better. It is also not too long and copying it allows us to improve wording or structure in the future if we want to. I don't feel super strongly though. Curious to hear more opinions. |
#479 will require us to make some (backwards-compatible) changes to yamux to encode errors, so having a spec in this repo that we can modify makes sense. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @thomaseizinger.
I am in favor of copying.
Co-authored-by: Marten Seemann <martenseemann@gmail.com>
This is ready to merge from my end. |
cc @marten-seemann @mxinden @wemeetagain
The specification itself is a verbatim copy from https://github.com/hashicorp/yamux/blob/master/spec.md modulo formatting changes.
The only addition is the "Implementation considerations" section at the bottom where we document the ACK backlog of 256. To my knowledge, only
go-libp2p
implements this at the moment.rust-yamux
still needs to implement this: libp2p/rust-yamux#150. I am not sure about the status of this injs-libp2p-yamux
?TODO