Skip to content

Releases: svrooij/unobtanium-web-proxy

v0.9.1-beta.2

18 Aug 10:00

Choose a tag to compare

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.0 only (no support for older versions of .NET!)
  • Support for ILogger See #4
  • Support for diagnostic events using ActivitySource and Activity See #3
  • Using the latest .NET features like Span<T> and Memory<T> to improve performance
  • Update dependencies to the latest versions
  • TLS 1.2 and TLS 1.3 only support
  • Modern Event System: Event-handlers with HttpRequestMessage and HttpResponseMessage, to greatly improve the portability of the library See #6
  • HttpClient as 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

14 Aug 17:08

Choose a tag to compare

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.0 only (no support for older versions of .NET!)
  • Support for ILogger See #4
  • Support for diagnostic events using ActivitySource and Activity See #3
  • Using the latest .NET features like Span<T> and Memory<T> to improve performance
  • Update dependencies to the latest versions
  • TLS 1.2 and TLS 1.3 only support
  • Modern Event System: Event-handlers with HttpRequestMessage and HttpResponseMessage, to greatly improve the portability of the library See #6
  • HttpClient as 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

07 Aug 22:05

Choose a tag to compare

v0.9.0-beta.1 Pre-release
Pre-release

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

10 Jul 09:41
fe1c74f

Choose a tag to compare

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?

23 Jun 11:23
2864ecb

Choose a tag to compare

What's Changed

Full Changelog: v0.1.1...v0.1.4

v0.1.1 - Project reboot

06 Jun 21:55

Choose a tag to compare

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