Meow - A Clash/mihomo Android client with Flutter UI, powered by mihomo-rust and netstack-smoltcp tun2socks
Last updated Jul 3, 2026
94
Stars
4
Forks
0
Issues
0
Stars/day
Attention Score
42
Language breakdown
No language data available.
โธ Files
click to expand
README
Meow

A Clash/mihomo Android client with Flutter UI, powered by meow-rs and netstack-smoltcp tun2socks.
An iOS port is in public beta โ see madeye/meow-ios.
Download
Architecture
Flutter UI (Dart)
| MethodChannel / EventChannel
v
Android Native (Kotlin)
| VpnService + AIDL IPC
| JNI (System.loadLibrary)
v
Rust FFI (libmihomoandroidffi.so)
| netstack-smoltcp tun2socks
| Per-socket VpnService.protect() via JNI
v
meow-rs (Cargo dependency)
| Tunnel, Config, Proxy, API
v
Network
Features
- Proxy Protocols: Shadowsocks, Trojan, AnyTLS, Direct
simple-obfs (HTTP/TLS) and v2ray-plugin
(WebSocket, optional TLS) โ no external SIP003 binary required
- Transports: TLS (with ECH), WebSocket, gRPC, HTTP/2, HTTPUpgrade
- Rule Engine: Domain, IP, port, geo-based routing, rule-providers, proxy groups
- tun2socks: Pure Rust via netstack-smoltcp (no C dependencies)
- DNS: Engine-owned fake-IP resolver; every in-TUN DNS query is answered
- Socket Protection: Per-socket
VpnService.protect(fd)via JNI callback - REST API: Embedded external controller (
127.0.0.1:9090) drives the
- Flutter UI: Shadowrocket-style tab view
- i18n: English, Chinese (zh_CN)
- E2E Tests: Automated with ssserver + Android emulator (SS and HTTP-proxy harnesses)
Building
Prerequisites
- Android SDK (API 36) with NDK
- Rust toolchain with Android targets:
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
- Flutter SDK (3.x)
- JDK 17
Build
# Generate Flutter module files
cd flutter_module && flutter pub get && cd ..
Build debug APK (arm64 only, release Rust)
export JAVA_HOME=/path/to/jdk17
./gradlew :mobile:assembleDebug -PTARGETABI=arm64 -PCARGOPROFILE=release
The APK is at mobile/build/outputs/apk/debug/mobile-arm64-v8a-debug.apk.
E2E Test
# Requires: ssserver, Android emulator, adb
./test-e2e.sh
Project Structure
core/ Android library module
src/main/java/ Kotlin: VPN service, AIDL, Room DB
src/main/rust/
mihomo-android-ffi/ Rust FFI crate (JNI + tun2socks)
flutter_module/ Flutter UI module
lib/screens/ Home, Subscriptions, Traffic, Connections,
Logs, Rules, Per-app proxy, Settings
lib/services/ VPN channel, REST API client, traffic history
lib/l10n/ Localization (en, zh_CN)
mobile/ Android app module (FlutterActivity host)
test-e2e.sh End-to-end test script (Shadowsocks)
test-e2e-http.sh End-to-end test script (HTTP proxy)
License
MIT - Max Lv
๐ More in this category
