implement web-api server with stats

This commit is contained in:
postscriptum 2026-03-22 03:24:02 +02:00
parent ddd7120f61
commit 126185480f
7 changed files with 952 additions and 44 deletions

View file

@ -1,22 +1,24 @@
# psocks
Experimental async SOCKS5 (TCP/UDP) proxy server based on [fast-socks5](https://github.com/dizda/fast-socks5/blob/master/examples/server.rs), featuring allowlist-based access control (drop everything but allowed by user)
Experimental async SOCKS5 (TCP/UDP) proxy server based on [fast-socks5](https://github.com/dizda/fast-socks5/blob/master/examples/server.rs), featuring allowlist-based access control (drop everything but allowed by user) with JSON/API based on [Rocket](https://rocket.rs) framework.
## Roadmap
* [ ] Range support
* [ ] Local Web-API
* [ ] Block stats
* [x] Block stats
* [ ] In-memory list update (without server restart)
* [ ] Performance optimization
## Usage
``` bash
RUST_LOG=trace cargo run -- -a=/path/to/allow1.txt \
-a=http://localhost/allow2.txt \
no-auth
RUST_LOG=psocks=trace cargo run -- -a=/path/to/allow1.txt \
-a=http://localhost/allow2.txt \
no-auth
```
* set `socks5://127.0.0.1:1080` proxy in your application
* open http://127.0.0.1:8010 in browser for stats & control API
### Allow list example