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

Download history 121/week @ 2025-01-29 8/week @ 2025-02-05 114/week @ 2025-02-19 33/week @ 2025-02-26 1/week @ 2025-03-05 68/week @ 2025-04-16

68 downloads per month

Apache-2.0

225KB
5.5K SLoC

jets

Release crates.io docs.rs

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

  1. Install protocol compiler by downloading a pre-built binary from Protocol Buffers releases.

  2. Intall Rust 1.80.0+.

  3. Check and run the example code. e.g.

    cargo run --example full
    
  4. 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 set target-cpu=native feature to let rustc generate and optimize code for the specific CPU.

    export RUSTFLAGS="-C target-cpu=native"
    

Limitation

  1. shadowsocks using 2022 cipher doesn't support password containing '-'.

Credits

  1. shadowsocks-rust
  2. v2ray-rust
  3. Xray-core
  4. leaf

Dependencies

~31–62MB
~1M SLoC