Skip to content

Implement AnyTLS client & server#2615

Merged
nekohasekai merged 5 commits intoSagerNet:dev-nextfrom
anytls:pr1.12
Feb 20, 2025
Merged

Implement AnyTLS client & server#2615
nekohasekai merged 5 commits intoSagerNet:dev-nextfrom
anytls:pr1.12

Conversation

@anytls
Copy link
Copy Markdown
Contributor

@anytls anytls commented Feb 20, 2025

#2611

Additional Notes:

  • As inbound, TLS is no longer mandatory, so you can use common TLS front ends (like nginx) to handle it.
  • I'm not interested in adding transport layers like ws right now, and I'm also not interested in dealing with fallback right now.
  • If you think that's convenient, you can copy anytls/sing-anytls to SagerNet/sing-anytls, then update the module name.

@nekohasekai
Copy link
Copy Markdown
Member

Using sing-box's proprietary UoT protocol for UDP traffic doesn't seem to be an elegant approach for a new protocol, I suggest you create a built-in UoT protocol like trojan did instead, what do you think about this?

@anytls
Copy link
Copy Markdown
Contributor Author

anytls commented Feb 20, 2025

You can see that naiveproxy does not support UDP at all. This shows that UDP is not particularly important.

For L7 proxies, people have always thought that as long as UDP can be used, it will be fine. We are not a game accelerator.

As for sing-box's UoT, I think it is already a de facto standard, and many Chinese proxy software supports it. Even if some software does not support it yet, it is not difficult to implement, as it is also a simple and clear protocol.

@nekohasekai
Copy link
Copy Markdown
Member

It makes sense. Please create a tag for your library and we can continue.

@nekohasekai nekohasekai merged this pull request into SagerNet:dev-next Feb 20, 2025
@nekohasekai
Copy link
Copy Markdown
Member

I seem to be missing something? It looks like your library is missing a license.

@anytls
Copy link
Copy Markdown
Contributor Author

anytls commented Feb 20, 2025

This is just another boring proxy protocol implementation. I don't know which LICENSE I should use, what do you think?

@dyhkwong
Copy link
Copy Markdown
Contributor

sing-anytls/anytls-go imports sing (GPL v3 or later), so sing-anytls and anytls-go have to be either "GPL v3 or later", or "GPL v3 only". However, to make sing-box (GPL v3 or later) possible to import sing-anytls, sing-anytls can't be licensed under "GPL v3 only". So IIUC sing-anytls can only be licensed under "GPL v3 or later".

@nekohasekai
Copy link
Copy Markdown
Member

Even if someone doesn't care about the protocol and steals our code, and some people specifically choose protocols that can be used by closed-source software to expand their influence, we can choose to be serious.

@nekohasekai
Copy link
Copy Markdown
Member

Please add a tag for the new license? This seems to be the last question.

@anytls
Copy link
Copy Markdown
Contributor Author

anytls commented Feb 21, 2025

@ericgtq
Copy link
Copy Markdown

ericgtq commented Feb 24, 2025

自问自答还挺有意思,单口相声讲的真好

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

Successfully merging this pull request may close these issues.

4 participants