Releases: svrooij/unobtanium-web-proxy
v0.9.1-beta.2
Unobtanium.Web.Proxy is not written in modern C#, using Kestrel (you know the low-level http(s) server after dotnet). With some proxy specifications at hand, I managed to built a WAY less complex http proxy. That is also blazing fast.
During the design of this rewrite I kept the reboot ideas in mind, and I think I ticked all the boxes.
💥 everything changed, your code is definitely broken 💣
Check-out the worker example, to get a feeling for the new api.
In short, you now have 3 points where you can influence the proxy:
- ShouldDecryptNewConnection where you get the hostname and can decide to passthrough or to intercept the request
- OnRequest which will be called for each incoming intercepted request. Three options, modify request, generate response or do nothing.
- OnResponse allows you to change the response from the backend (or do nothing)
There are some interfaces, with default implementations if not implemented yourself. All http traffic is intercepted by default (because it does not really matter). For https traffic you’re able to decide whether or not to intercept the traffic.
Https passthrough will just forward the request as is, without decrypting the ssl stream.
Reboot focus
net8.0only (no support for older versions of .NET!)- Support for
ILoggerSee #4 - Support for diagnostic events using
ActivitySourceandActivitySee #3 - Using the latest .NET features like
Span<T>andMemory<T>to improve performance - Update dependencies to the latest versions
TLS 1.2andTLS 1.3only support- Modern Event System: Event-handlers with
HttpRequestMessageandHttpResponseMessage, to greatly improve the portability of the library See #6 HttpClientas the default client, and using the IHttpClientFactory to handle pooling of the clients- Testing, testing, testing!
Full Changelog: v0.9.1-beta.1...v0.9.1-beta.2
v0.9.1-beta.1 Full rewrite to kestrel
This release is the very first release of the completely rewritten web proxy. After having issue after issue for days. Solved one, two new issues appeared. I was stuck on a road to nowhere.
I then pointed my eyes at Kestrel (you know the low-level http(s) server after dotnet). With some proxy specifications at hand, I managed to built a WAY less complex http proxy. That is also blazing fast.
During the design of this rewrite I kept the reboot ideas in mind, and I think I ticked all the boxes.
Reboot focus
net8.0only (no support for older versions of .NET!)- Support for
ILoggerSee #4 - Support for diagnostic events using
ActivitySourceandActivitySee #3 - Using the latest .NET features like
Span<T>andMemory<T>to improve performance - Update dependencies to the latest versions
TLS 1.2andTLS 1.3only support- Modern Event System: Event-handlers with
HttpRequestMessageandHttpResponseMessage, to greatly improve the portability of the library See #6 HttpClientas the default client, and using the IHttpClientFactory to handle pooling of the clients- Testing, testing, testing!
Full Changelog: v0.9.0-beta.1...v0.9.1-beta.1
v0.9.0-beta.1
Near v1
After months of not working on this project, I've been working on it a lot lately.
This release marks the first release where I implemented a lot of the reboot issues
This version is SO MUCH FASTER that I just had to share it with everybody.
⚠️ Expect breaking changes ⚠️
The handling of the proxy connections changed so much that you're bound to have breaking changes, but you should get a feeling for the new api.
Full Changelog: v0.1.5...v0.9.0-beta.1
v0.1.5 - No sync certificate stuff
What's Changed
- Replace BrotliSharpLib with native implementation by @svrooij in #28
- chore: Removed sync ICertificateStuff by @svrooij in #30
Full Changelog: v0.1.4...v0.1.5
v0.1.4 - Can bouncy castle be removed?
v0.1.1 - Project reboot
What's Changed
- Project reboot by @svrooij in #1
- Project rename and nuget release by @svrooij in #9
- Add missing XML documentation comments by @svrooij in #12
- Add XML documentation comments to public types and members by @svrooij in #13
- 8 bunch of undocumented code by @svrooij in #14
Full Changelog: https://github.com/svrooij/titanium-web-proxy/commits/v0.1.1
Use this library
Available on 📦 nuget