4 releases (2 breaking)
new 0.3.1 | Apr 23, 2025 |
---|---|
0.3.0 | Apr 22, 2025 |
0.2.0 | Feb 24, 2025 |
0.1.0 | Jan 30, 2025 |
#978 in Network programming
68 downloads per month
225KB
5.5K
SLoC
jets
A Rust rule-based tunnel targeting to enduser for secure & reliable network access in high speed.
Features
This project is still in the very early development stage. Welcome anyone interested to join.
β Implemented π§ Under construction β Not yet implemented
-
Inbound
- socks(β socks5, β socks4)
- β http
- β tun
-
Outbound
- freedom
- socks(β socks5)
- vless(β v2fly, β xtls)
- β shadowsocks
- β trojan
- β vmess
-
Routing
- β InboundTag, Ip, Domain
- β source, protocol, balancerTag
- β AsIs, β IPIfNonMatch & IPOnDemand
-
DNS
- β UDP
- β DNS over TCP
- β doh/doq/dot
-
Transport
- β raw
- β tls β config, e.g. server name, certificate, ...
- β reality
- β http, websocket, gprc
-
Other
- β Connection option, e.g. bind interface, tcp fast open, ...
- β socks & http authentication
- β UDP Full Cone
- β fakedns
- β more protocols & configurations
Getting Started
Create a Jets' configuration file named config.json
. For detailed explanation of the configuration file could be found on the Wiki page. Then run the following command:
jet -c config.json
Development
-
Install protocol compiler by downloading a pre-built binary from Protocol Buffers releases.
-
Check and run the example code. e.g.
cargo run --example full
-
Build from source. Then
jets
will appear in./target/release/
folder.cargo build --release
PS: If you are building
jets
for your own CPU platform (for example, build and run on your PC only), it is recommended to settarget-cpu=native
feature to letrustc
generate and optimize code for the specific CPU.export RUSTFLAGS="-C target-cpu=native"
Limitation
- shadowsocks using 2022 cipher doesn't support password containing '-'.
Credits
Dependencies
~31β62MB
~1M SLoC