diff --git a/README.md b/README.md index 67ba4e8..096ee85 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ # BaoLianDeng -macOS VPN proxy app powered by [meow-rs](https://github.com/madeye/meow-rs), a Clash/mihomo-compatible proxy kernel written in Rust. +macOS VPN proxy app powered by [meow-rs](https://github.com/meow-rs/meow-rs), a Clash/mihomo-compatible proxy kernel written in Rust. **[App Store](https://apps.apple.com/app/baoliandeng/id6779101876)** · **[TestFlight Beta](https://testflight.apple.com/join/VpX3tHnS)** · **[Website](https://madeye.github.io/BaoLianDeng/)** ## Features - **Transparent Proxy** — Built on `NETransparentProxyProvider` for socket-level flow interception, faster than traditional TUN-based solutions -- **meow-rs Engine** — Clash/mihomo-compatible proxy kernel written in Rust ([madeye/meow-rs](https://github.com/madeye/meow-rs)), compiled as a native xcframework +- **meow-rs Engine** — Clash/mihomo-compatible proxy kernel written in Rust ([meow-rs/meow-rs](https://github.com/meow-rs/meow-rs)), compiled as a native xcframework - **Per-App Proxy** — Choose which apps go through the proxy (allowlist) or bypass it (blocklist) - **Subscription Management** — Add, refresh, and switch between proxy subscriptions (Clash YAML and base64 formats) - **Smart Proxy Routing** — Browse nodes with latency indicators, switch proxy groups, rule/global/direct modes @@ -62,7 +62,7 @@ macOS VPN proxy app powered by [meow-rs](https://github.com/madeye/meow-rs), a C make framework # macOS universal (arm64 + x86_64) ``` -This builds the Rust FFI bridge under `Rust/meow-ffi/` (a staticlib around the [meow-rs](https://github.com/madeye/meow-rs) engine) into `Framework/MihomoCore.xcframework`. +This builds the Rust FFI bridge under `Rust/meow-ffi/` (a staticlib around the [meow-rs](https://github.com/meow-rs/meow-rs) engine) into `Framework/MihomoCore.xcframework`. #### 2. Configure signing diff --git a/Rust/meow-ffi/Cargo.lock b/Rust/meow-ffi/Cargo.lock index ddeaa0f..ada6757 100644 --- a/Rust/meow-ffi/Cargo.lock +++ b/Rust/meow-ffi/Cargo.lock @@ -1898,8 +1898,8 @@ dependencies = [ [[package]] name = "meow-anytls" -version = "0.20.2" -source = "git+https://github.com/madeye/meow-rs.git?rev=7d7f8303ab8220b54fc7459860f9c5c31b1ab63d#7d7f8303ab8220b54fc7459860f9c5c31b1ab63d" +version = "0.21.1" +source = "git+https://github.com/meow-rs/meow-rs.git?rev=bc38424bcea5efad18b4dbb2ebd679f54fc68531#bc38424bcea5efad18b4dbb2ebd679f54fc68531" dependencies = [ "anyhow", "bytes", @@ -1928,8 +1928,8 @@ dependencies = [ [[package]] name = "meow-api" -version = "0.20.2" -source = "git+https://github.com/madeye/meow-rs.git?rev=7d7f8303ab8220b54fc7459860f9c5c31b1ab63d#7d7f8303ab8220b54fc7459860f9c5c31b1ab63d" +version = "0.21.1" +source = "git+https://github.com/meow-rs/meow-rs.git?rev=bc38424bcea5efad18b4dbb2ebd679f54fc68531#bc38424bcea5efad18b4dbb2ebd679f54fc68531" dependencies = [ "axum", "base64", @@ -1961,8 +1961,8 @@ dependencies = [ [[package]] name = "meow-app" -version = "0.20.2" -source = "git+https://github.com/madeye/meow-rs.git?rev=7d7f8303ab8220b54fc7459860f9c5c31b1ab63d#7d7f8303ab8220b54fc7459860f9c5c31b1ab63d" +version = "0.21.1" +source = "git+https://github.com/meow-rs/meow-rs.git?rev=bc38424bcea5efad18b4dbb2ebd679f54fc68531#bc38424bcea5efad18b4dbb2ebd679f54fc68531" dependencies = [ "anyhow", "base64", @@ -1990,8 +1990,8 @@ dependencies = [ [[package]] name = "meow-common" -version = "0.20.2" -source = "git+https://github.com/madeye/meow-rs.git?rev=7d7f8303ab8220b54fc7459860f9c5c31b1ab63d#7d7f8303ab8220b54fc7459860f9c5c31b1ab63d" +version = "0.21.1" +source = "git+https://github.com/meow-rs/meow-rs.git?rev=bc38424bcea5efad18b4dbb2ebd679f54fc68531#bc38424bcea5efad18b4dbb2ebd679f54fc68531" dependencies = [ "async-trait", "bytes", @@ -2014,8 +2014,8 @@ dependencies = [ [[package]] name = "meow-config" -version = "0.20.2" -source = "git+https://github.com/madeye/meow-rs.git?rev=7d7f8303ab8220b54fc7459860f9c5c31b1ab63d#7d7f8303ab8220b54fc7459860f9c5c31b1ab63d" +version = "0.21.1" +source = "git+https://github.com/meow-rs/meow-rs.git?rev=bc38424bcea5efad18b4dbb2ebd679f54fc68531#bc38424bcea5efad18b4dbb2ebd679f54fc68531" dependencies = [ "anyhow", "async-trait", @@ -2048,8 +2048,8 @@ dependencies = [ [[package]] name = "meow-dns" -version = "0.20.2" -source = "git+https://github.com/madeye/meow-rs.git?rev=7d7f8303ab8220b54fc7459860f9c5c31b1ab63d#7d7f8303ab8220b54fc7459860f9c5c31b1ab63d" +version = "0.21.1" +source = "git+https://github.com/meow-rs/meow-rs.git?rev=bc38424bcea5efad18b4dbb2ebd679f54fc68531#bc38424bcea5efad18b4dbb2ebd679f54fc68531" dependencies = [ "async-trait", "dashmap", @@ -2076,7 +2076,7 @@ dependencies = [ [[package]] name = "meow-ffi" -version = "0.20.2" +version = "0.21.1" dependencies = [ "anyhow", "dashmap", @@ -2099,8 +2099,8 @@ dependencies = [ [[package]] name = "meow-listener" -version = "0.20.2" -source = "git+https://github.com/madeye/meow-rs.git?rev=7d7f8303ab8220b54fc7459860f9c5c31b1ab63d#7d7f8303ab8220b54fc7459860f9c5c31b1ab63d" +version = "0.21.1" +source = "git+https://github.com/meow-rs/meow-rs.git?rev=bc38424bcea5efad18b4dbb2ebd679f54fc68531#bc38424bcea5efad18b4dbb2ebd679f54fc68531" dependencies = [ "base64", "libc", @@ -2114,8 +2114,8 @@ dependencies = [ [[package]] name = "meow-proxy" -version = "0.20.2" -source = "git+https://github.com/madeye/meow-rs.git?rev=7d7f8303ab8220b54fc7459860f9c5c31b1ab63d#7d7f8303ab8220b54fc7459860f9c5c31b1ab63d" +version = "0.21.1" +source = "git+https://github.com/meow-rs/meow-rs.git?rev=bc38424bcea5efad18b4dbb2ebd679f54fc68531#bc38424bcea5efad18b4dbb2ebd679f54fc68531" dependencies = [ "aes", "aes-gcm", @@ -2129,6 +2129,7 @@ dependencies = [ "crc32fast", "ctr", "futures", + "h2", "h3", "h3-quinn", "hex", @@ -2154,15 +2155,17 @@ dependencies = [ "thiserror 2.0.20", "tokio", "tokio-rustls", + "tokio-util", "tracing", "webpki-roots 0.26.11", "x25519-dalek", + "yamux", ] [[package]] name = "meow-rules" -version = "0.20.2" -source = "git+https://github.com/madeye/meow-rs.git?rev=7d7f8303ab8220b54fc7459860f9c5c31b1ab63d#7d7f8303ab8220b54fc7459860f9c5c31b1ab63d" +version = "0.21.1" +source = "git+https://github.com/meow-rs/meow-rs.git?rev=bc38424bcea5efad18b4dbb2ebd679f54fc68531#bc38424bcea5efad18b4dbb2ebd679f54fc68531" dependencies = [ "ipnet", "iprange", @@ -2178,8 +2181,8 @@ dependencies = [ [[package]] name = "meow-transport" -version = "0.20.2" -source = "git+https://github.com/madeye/meow-rs.git?rev=7d7f8303ab8220b54fc7459860f9c5c31b1ab63d#7d7f8303ab8220b54fc7459860f9c5c31b1ab63d" +version = "0.21.1" +source = "git+https://github.com/meow-rs/meow-rs.git?rev=bc38424bcea5efad18b4dbb2ebd679f54fc68531#bc38424bcea5efad18b4dbb2ebd679f54fc68531" dependencies = [ "aes-gcm", "async-trait", @@ -2208,13 +2211,13 @@ dependencies = [ [[package]] name = "meow-trie" -version = "0.20.2" -source = "git+https://github.com/madeye/meow-rs.git?rev=7d7f8303ab8220b54fc7459860f9c5c31b1ab63d#7d7f8303ab8220b54fc7459860f9c5c31b1ab63d" +version = "0.21.1" +source = "git+https://github.com/meow-rs/meow-rs.git?rev=bc38424bcea5efad18b4dbb2ebd679f54fc68531#bc38424bcea5efad18b4dbb2ebd679f54fc68531" [[package]] name = "meow-tunnel" -version = "0.20.2" -source = "git+https://github.com/madeye/meow-rs.git?rev=7d7f8303ab8220b54fc7459860f9c5c31b1ab63d#7d7f8303ab8220b54fc7459860f9c5c31b1ab63d" +version = "0.21.1" +source = "git+https://github.com/meow-rs/meow-rs.git?rev=bc38424bcea5efad18b4dbb2ebd679f54fc68531#bc38424bcea5efad18b4dbb2ebd679f54fc68531" dependencies = [ "async-trait", "dashmap", @@ -2296,6 +2299,12 @@ dependencies = [ "num-traits", ] +[[package]] +name = "nohash-hasher" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" + [[package]] name = "nom" version = "7.1.3" @@ -3344,6 +3353,12 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + [[package]] name = "strsim" version = "0.11.1" @@ -3608,6 +3623,7 @@ checksum = "494815d09bf52b5548659851081238f0ca39ff638363907596da739561c62c52" dependencies = [ "bytes", "futures-core", + "futures-io", "futures-sink", "libc", "pin-project-lite", @@ -4442,6 +4458,21 @@ dependencies = [ "time", ] +[[package]] +name = "yamux" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "767113d8f66a81e461362462aa71d8d0108cbf3430d4442fb88a04e31be81165" +dependencies = [ + "futures", + "log", + "nohash-hasher", + "parking_lot", + "pin-project", + "static_assertions", + "web-time", +] + [[package]] name = "yasna" version = "0.6.0" diff --git a/Rust/meow-ffi/Cargo.toml b/Rust/meow-ffi/Cargo.toml index dc2a873..7df1637 100644 --- a/Rust/meow-ffi/Cargo.toml +++ b/Rust/meow-ffi/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "meow-ffi" -version = "0.20.2" +version = "0.21.1" edition = "2021" rust-version = "1.89" license = "MIT" @@ -20,18 +20,19 @@ crate-type = ["staticlib"] # effect; without it meow-transport parses the key, warns once, and falls back # to a plain rustls Client Hello. boring-sys vendors BoringSSL and builds it # with cmake per arch — both darwin arches compile, so the universal lipo -# still works (see Makefile). -meow-common = { git = "https://github.com/madeye/meow-rs.git", rev = "7d7f8303ab8220b54fc7459860f9c5c31b1ab63d" } -meow-config = { git = "https://github.com/madeye/meow-rs.git", rev = "7d7f8303ab8220b54fc7459860f9c5c31b1ab63d", default-features = false, features = ["ss", "trojan", "vless", "vless-vision", "vless-encryption", "vmess", "snell", "hysteria2", "anytls", "ech-tls-tunnel", "boring-tls"] } -meow-dns = { git = "https://github.com/madeye/meow-rs.git", rev = "7d7f8303ab8220b54fc7459860f9c5c31b1ab63d" } -meow-tunnel = { git = "https://github.com/madeye/meow-rs.git", rev = "7d7f8303ab8220b54fc7459860f9c5c31b1ab63d" } -meow-listener = { git = "https://github.com/madeye/meow-rs.git", rev = "7d7f8303ab8220b54fc7459860f9c5c31b1ab63d", default-features = false, features = ["listener-mixed"] } -meow-api = { git = "https://github.com/madeye/meow-rs.git", rev = "7d7f8303ab8220b54fc7459860f9c5c31b1ab63d" } +# still works (see Makefile). `mux` is sing-mux multiplexing (`smux:` on an +# outbound); it is part of meow-app's `full` set, so it is listed here too. +meow-common = { git = "https://github.com/meow-rs/meow-rs.git", rev = "bc38424bcea5efad18b4dbb2ebd679f54fc68531" } +meow-config = { git = "https://github.com/meow-rs/meow-rs.git", rev = "bc38424bcea5efad18b4dbb2ebd679f54fc68531", default-features = false, features = ["ss", "trojan", "vless", "vless-vision", "vless-encryption", "vmess", "snell", "hysteria2", "anytls", "ech-tls-tunnel", "mux", "boring-tls"] } +meow-dns = { git = "https://github.com/meow-rs/meow-rs.git", rev = "bc38424bcea5efad18b4dbb2ebd679f54fc68531" } +meow-tunnel = { git = "https://github.com/meow-rs/meow-rs.git", rev = "bc38424bcea5efad18b4dbb2ebd679f54fc68531" } +meow-listener = { git = "https://github.com/meow-rs/meow-rs.git", rev = "bc38424bcea5efad18b4dbb2ebd679f54fc68531", default-features = false, features = ["listener-mixed"] } +meow-api = { git = "https://github.com/meow-rs/meow-rs.git", rev = "bc38424bcea5efad18b4dbb2ebd679f54fc68531" } # meow-app is pulled in ONLY for its `health_check` lib helpers (url-test / # fallback group probing). default-features = false drops its `full` bundle; # protocol features (including boring-tls) come from meow-config above and # unify onto the shared crate instances. -meow-app = { git = "https://github.com/madeye/meow-rs.git", rev = "7d7f8303ab8220b54fc7459860f9c5c31b1ab63d", default-features = false } +meow-app = { git = "https://github.com/meow-rs/meow-rs.git", rev = "bc38424bcea5efad18b4dbb2ebd679f54fc68531", default-features = false } tokio = { version = "1", default-features = false, features = ["rt-multi-thread", "net", "time", "sync", "io-util", "macros"] } parking_lot = "0.12" diff --git a/docs/index.html b/docs/index.html index bce37bd..b001229 100644 --- a/docs/index.html +++ b/docs/index.html @@ -568,7 +568,7 @@
meow-rs, a Clash/mihomo-compatible proxy kernel written in Rust, compiled as a native xcframework — no external binaries.
+meow-rs, a Clash/mihomo-compatible proxy kernel written in Rust, compiled as a native xcframework — no external binaries.
© 2026 BaoLianDeng. Powered by meow-rs.
+© 2026 BaoLianDeng. Powered by meow-rs.