justcoding121 / titanium-web-proxy

A cross-platform asynchronous HTTP(S) proxy server in C#.
MIT License
1.92k stars 605 forks source link

Future of Titanium Web Proxy #631

Open honfika opened 5 years ago

honfika commented 5 years ago

The new dotnet (since almost 2 years ago - .NET Core 2.1+) and the further versions of .NET (5+) offers some new features which would be very useful for Titanium,

For example Spans, which would make the parsing more efficient. It also supports HTTP/2 (which is already partially supported by TWP in .NET Core 2.1+)

I'm just curious how many of the users are using the old and the new .NET frameworks. What you you think about droppoing the support of the old .NET framework when .NET 5 is released? (About 1 year from now) And until than implement the faster parsing and other stuff in a branch.

jgilbert2017 commented 5 years ago

i use netframework (not netcore) so as long as you don't drop netframework altogether, i'm good!

you may want to try to use conditional compilation rather than a branch otherwise it may be hard to keep both branches in sync with bugfixes/etc.

honfika commented 5 years ago

TWP is using conditional compilation currently for HTTP/2 support. The refactoring for the new .NET will change about 50% of the code, I don't think that it is a good idea to duplicate almost all of the files in the same branch. And of course the olda packages will be available on nuget, so when somebody needs that, he can use it.

The problem in my side is that hard to start something better until it just makes a bigger mess with the old compatibility. So when there is a high demand on the old .NET fmaework, then it is not a problem, just probably it will delay the implementation of the new things:)

ByronAP commented 5 years ago

IMHO drop support for < 3.0 and leave the old stuff behind as legacy that way the project can move forward without all the confusion that exists in the current src with all the conditional compilation. I see a lot of people moving to 3.0 already because of the networking fixes and performance improvements.

I was writing a list of issues here that this would solve but forget that i'll just cast my vote instead lol

vflame commented 5 years ago

+1 for .net core > 3.0 and dropping legacy support. M$'s future is cross platform and .net core.

honfika commented 4 years ago

I've removed the .net core 2.1 support, now netstandard 2.1 (core 3.0) is required for http/2. Thats the only feature which needs netrandard 2.1, so I hope it is not a problem since it is just an expreimental, not finished feature.

.net framework (and netcore 2.x) is still supported with netstandard 2.0

antrv commented 4 years ago

We are using Titanium Proxy in our project targeting .NET 4.5.2. We cannot raise the minimum supported .NET Framework version for now, so even .netstandard 2.0 is unreachable for us.

honfika commented 4 years ago

@antrv In this case you can still use the latest 3.0 version, but it won't receive any new update.

lwksystem commented 4 years ago

I'm using .net framework version and hope you still support until Microsoft end of support of .net framework.

honfika commented 4 years ago

I can't promise that it will support .NET Framework until the MS support, since .NET 3.5 is supported until 2028... .NET 4.8 will be supproted more than that... Thats too long, and it would be a very big overhead.

Of course currenty I don't plan to remove .netstandard 2.0 support (.NET 4.6.1+), but probably 5 years later it will be removed... (but you can always download the earlier versions of TWP).

honfika commented 2 years ago

I think it is time to upgrade the target frameworks. What do you think @justcoding121?

.NET Fw to 4.6.2, since: https://devblogs.microsoft.com/dotnet/net-framework-4-5-2-4-6-4-6-1-will-reach-end-of-support-on-april-26-2022/

.NET "core" to NET 5, since 3.0 and earlier versions are already unsupported, 3.1 will be unsupported at the end of this year. (until than the users can use the current version if needed, however I think the compatibility issue affects the .NET 4.x users more than the core users.)

.NET standards are deprecated, to the following 2 TFWs would be enough: net462,net50

antrv commented 2 years ago

We don't use .NETFW 452 anymore, so I think it would be nice if you can switch to .NET 6 because it is LTS and also it supports HTTP 3.0 (QUIC).