Skip to content
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

Change underlying protocol on UDP #1

Closed
tsuzu opened this issue Feb 21, 2018 · 5 comments
Closed

Change underlying protocol on UDP #1

tsuzu opened this issue Feb 21, 2018 · 5 comments

Comments

@tsuzu
Copy link
Owner

tsuzu commented Feb 21, 2018

utp, a library which is used by go-easyp2p is deprecated.(anacrolix/utp#26)
Therefore, we should use another library.

There are some candidates

However, all of these have problems.

quic-go

  • QUIC, which is a protocol used by quic-go is experimental.
  • The architecture of QUIC is stream-multiplexing, so if I adopt it, APIs of go-easyp2p will have to be changed largely.

go-libutp

  • go-libutp depends on libutp, which is written in C/C++, so it will get more difficult to cross-compile programs using go-easyp2p.

I considered whether kcp-go can be used, but it doesn't implement control messages such as SYN/FIN/RST, so I think it's very difficult to adopt it.

If you know other libraries, please tell me them.

@tsuzu
Copy link
Owner Author

tsuzu commented Mar 6, 2018

FIx in 66b9797

@tsuzu tsuzu closed this as completed Mar 6, 2018
@jannson
Copy link

jannson commented May 21, 2018

You can use "kcp-go" + "smux" .

@tsuzu
Copy link
Owner Author

tsuzu commented May 22, 2018

Yes!
I like "kcp-go" and "smux" very much, (I use "smux" in cs3238-tsuzu/ftrans.) but I used QUIC because it is being standardized.

@anacrolix
Copy link

Has anacrolix/utp worked all right for you so far?

@tsuzu
Copy link
Owner Author

tsuzu commented Jul 27, 2018

@anacrolix Yes. It worked perfectly. Thank you so much!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants