Skip to content

Bump meow-rs kernel to 0.21.1, enable sing-mux, and move to meow-rs/meow-rs - #106

Merged
madeye merged 2 commits into
mainfrom
chore/bump-meow-rs-0.21.1
Aug 26, 2026
Merged

Bump meow-rs kernel to 0.21.1, enable sing-mux, and move to meow-rs/meow-rs#106
madeye merged 2 commits into
mainfrom
chore/bump-meow-rs-0.21.1

Conversation

@madeye

@madeye madeye commented Aug 25, 2026

Copy link
Copy Markdown
Owner

Moves the pinned kernel rev from 7d7f830 (0.20.2) to bc38424 (0.21.1) — 86 upstream commits — and repoints every reference at the kernel's new home, github.com/meow-rs/meow-rs.

Notable upstream fixes that reach this app

  • anytls — auth record is written in a single TLS record, fixing servers that reject a split auth flight
  • dns — fake-IP lookup is serialised across the store read and the allocation, closing a double-allocation race that could silently drop a host's live forward mapping; del_by_ip is now compare-and-delete
  • udp — NAT key claimed atomically, eviction gated on session identity
  • config — rule/proxy-provider paths contained inside the cache dir; direct HTTP fetches for rule-providers and geodata cap the body size
  • reality — pre-auth server-flight transcript capped and ordered; unquoted numeric short-id accepted (mihomo compat)
  • vless — the XTLS Vision + mux gate narrowed to sing-mux, so Mux.Cool is allowed again

Feature change

mux is added to the meow-config feature list. sing-mux landed upstream and is part of meow-app's full protocol set, which this crate mirrors; nodes carrying smux: now multiplex instead of being rejected.

Repo move

The kernel repo moved from madeye/meow-rs to meow-rs/meow-rs. The seven git dependencies, the lockfile, and the prose links in README.md and docs/index.html now use the new URL. The pinned rev is unchanged — bc38424 is HEAD of the new remote and resolves identically there. GitHub still redirects the old path, but pinning the canonical URL keeps cargo update and fresh clones off that redirect.

Verification

  • cargo fmt --check, cargo clippy --all-targets -- -D warnings — clean
  • From-scratch fetch and release build of the FFI crate against the new remote — succeeds
  • make framework — arm64 + x86_64, universal lipo OK
  • Debug and Release app builds — succeed
  • swiftlint lint --strict — 0 violations
  • BaoLianDengTests — 212/213 pass

The one failure, HTTP request through SOCKS5 proxy, is environmental and not a regression. It curls --socks5 (curl resolves the hostname locally, so the engine receives an IP literal) to gstatic, and the network this ran on cannot reach that Google IP directly at all — plain curl --resolve with no proxy in the path times out identically. Running the same minimal config against a meow binary built at the previous 0.20.2 rev reproduces the failure byte-for-byte, while --socks5-hostname and the HTTP-proxy path succeed on both revs.

madeye added 2 commits August 25, 2026 22:30
Moves the pinned kernel rev from 7d7f830 (0.20.2) to bc38424 (0.21.1),
86 upstream commits. Notable fixes that reach this app:

- anytls: auth record is written in a single TLS record, fixing servers
  that reject a split auth flight
- dns: fake-IP lookup is serialised across the store read and the
  allocation, closing a double-allocation race that could silently drop
  a host's live forward mapping
- udp: NAT key is claimed atomically and eviction gated on session
  identity
- config: rule/proxy-provider paths are contained inside the cache dir,
  and direct HTTP fetches for rule-providers and geodata cap the body
  size
- reality: pre-auth server-flight transcript is capped and ordered;
  unquoted numeric `short-id` is accepted (mihomo compat)
- vless: the XTLS Vision + mux gate is narrowed to sing-mux, so Mux.Cool
  is allowed again

`mux` is added to the meow-config feature list: sing-mux landed upstream
and is part of meow-app's `full` protocol set, which this crate mirrors.
Nodes carrying `smux:` now multiplex instead of being rejected.

Verified: cargo fmt --check, cargo clippy --all-targets -D warnings,
`make framework` (arm64 + x86_64 lipo), Debug and Release app builds,
swiftlint --strict (0 violations), and BaoLianDengTests — 212/213 pass.
The one failure, "HTTP request through SOCKS5 proxy", is environmental,
not a regression: it curls `--socks5` (curl resolves locally, so the
engine gets an IP literal) to gstatic, and this network cannot reach
that Google IP directly at all — plain `curl --resolve` with no proxy
times out the same way, and the identical config reproduces the failure
byte-for-byte on the previous 0.20.2 kernel.
The kernel repo moved from github.com/madeye/meow-rs to
github.com/meow-rs/meow-rs. Repoints the seven git dependencies in
Rust/meow-ffi (lockfile regenerated against the new URL) and the prose
links in README.md and docs/index.html.

The pinned rev is unchanged — bc38424 is HEAD of the new remote and
resolves identically there, so this is a URL move with no code change.
GitHub still redirects the old path, but pinning the canonical URL keeps
`cargo update` and fresh clones from depending on that redirect.

Verified: cargo fmt --check, cargo clippy --all-targets -D warnings,
a from-scratch fetch and release build of the FFI crate against the new
remote, `make framework` (arm64 + x86_64), and the Debug app build.
BaoLianDengTests unchanged at 212/213 — the one failure is the same
network-dependent SOCKS5 test described in the previous commit.
@madeye madeye changed the title Bump meow-rs kernel to 0.21.1 and enable sing-mux Bump meow-rs kernel to 0.21.1, enable sing-mux, and move to meow-rs/meow-rs Aug 26, 2026
@madeye
madeye merged commit 4f1c622 into main Aug 26, 2026
9 of 10 checks passed
@madeye
madeye deleted the chore/bump-meow-rs-0.21.1 branch August 26, 2026 03:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant