Replies: 3 comments 4 replies
-
I'm a home user only. So my thoughts are not from a developers perspective and may be confusing for you ... Basically, I think implementing a plugin system is a good idea. Reading Design-2 makes me sit up and take notice. Really? A new VM inside a container? Because of the safety concerns in Design-1 And why not run the "plugin http server" completely independent? As non root? |
Beta Was this translation helpful? Give feedback.
-
For the plugin system, I was thinking of something more extensive, allowing for more advanced management of other TCP- or UDP-based protocols, not just HTTP. I understand that making plugin development easy is important, as most users are beginners. A possible solution could be to develop a more extensive plugin system and, based on that, create a plugin that includes a scripting language specifically for HTTP. Regarding Design 1, exposing an endpoint that can control proxy traffic seems somewhat risky. Additionally, if users want to install a plugin, I assume it would need to be executed as a separate binary. Design 2 seems more viable and, above all, more secure. It might also be more efficient to use compiled plugins instead of a scripting language. A possible approach could be implementing a priority queue system, where the first plugin inspects the traffic; if no modifications are needed, it passes it to the next one; otherwise, it modifies it before forwarding it further. |
Beta Was this translation helpful? Give feedback.
-
How do I install a plugin? I'm trying to install the example debugger plugin on my proxy with docker, I've already built it but I don't know how to install it, I've tried transferring the binary to the plugins folder and rebooting but it doesn't work. Thanks in advance. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi everyone, I am currently designing a plugin system but has been stuck here for weeks. I need some inputs on how should I design a plugin system for Zoraxy. Currently I have these two ideas in mind.
Design 1
Plugin itself is a HTTP server which expose a set of specified endpoint for Zoraxy to forward requests to.

Pros
Cons
Design 2
Plugin execute within Zoraxy as a virtual machine, something like greesemonkey (the browser plugin that execute JavaScript), and Zoraxy provide a basic HTTP agent and sandbox file system for requesting external resources from the VM
Pros
Cons
Side Notes
Yes, I do know there are other implementations like the native Go plugin system (which only support linux and not quite well maintained) and similar implementations in gRPC. But since most users (and developers using Zoraxy, probably) are beginners in networking / programming, I want to make it as simple as possible to develop and use a plugin in Zoraxy. Looking forward to read all your comments and ideas :)
Beta Was this translation helpful? Give feedback.
All reactions