AChimera یک پروژه آزمایشی کلاینت پراکسی بر پایه Android + Kotlin/Jetpack Compose + Rust/UniFFI است. این مخزن در حال حاضر قابلیتهای پایهای مانند رابط کاربری اندروید، ورودی سرویس VPN، ورود و اعتبارسنجی پیکربندی، اتصال به هسته Rust، مشاهده لاگ و پنل نودها را دارد. هدف پروژه این است که تجربه موبایل و هسته شبکه زیرین را به یک ساختار چندماژولی شفاف تقسیم کند.
نام فعلی برنامه Chimera Lite است و این بسته هم لایه رابط کاربری اندروید و هم هسته Rust را که از طریق UniFFI برای Kotlin ارائه میشود در بر میگیرد.
hysteria2realityxhttptrojanvlesstls+ws
- Android SDK 36
- Kotlin + Jetpack Compose
- Java 25 Toolchain
- Rust 2024
- UniFFI
cargo-ndkclash-libبه عنوان وابستگی هسته Rust
پیش از ساخت محلی، حداقل این موارد باید آماده باشند:
- JDK 25
- Android SDK 36 و Build Tools 36.0.0
- Android NDK
29.0.14206865 - Rust toolchain
cargo-ndk
توصیه میشود یکی از گزینههای زیر را تنظیم کنید تا Gradle بتواند SDK/NDK را پیدا کند:
sdk.dirدرlocal.propertiesو در صورت نیازndk.dir- یا
ANDROID_SDK_ROOT - یا
ANDROID_HOME - در صورت نیاز
ANDROID_NDK_HOME/ANDROID_NDK_ROOT
نصب cargo-ndk:
cargo install cargo-ndk --lockedساخت Debug APK:
.\gradlew assembleDebugاجرای بررسیهای کیفیت:
.\gradlew testDebugUnitTest lintDebugساخت Release APK:
.\gradlew assembleReleaseماژول core پیش از کامپایل اندروید بهطور خودکار دو کار انجام میدهد:
- با استفاده از
cargo ndk،chimera-ffiرا برای Android ABI میسازد - بر اساس کتابخانه پویا تولیدشده،
uniffi-bindgenرا اجرا میکند و bindingهای Kotlin را خروجی میدهد
این پروژه همچنان در حال توسعه است و README فقط آنچه را توصیف میکند که در مخزن فعلی پیادهسازی شده است. با توجه به رشتهها و پیادهسازی فعلی، هنوز چند محدودیت شناختهشده وجود دارد:
- پس از توقف VPN، پیادهسازی فعلی ممکن است برای جلوگیری از وضعیت ناایمن زمان اجرا برنامه را ریاستارت کند
- برخی تنظیمات پس از تغییر پیکربندی فقط با ریاستارت VPN بهطور کامل اعمال میشوند
clash-rs/clash-libهنوز با برخی پیکربندیهای mihomo سازگاری محدودی دارد
پروژه از فایل LICENSE در ریشه مخزن استفاده میکند.
- اگر در استفاده یا پیادهسازی با مشکلی روبهرو شدید، میتوانید Issue یا PR ثبت کنید.
- حتی اگر کاملا تازهکار هستید، بعد از مطالعه wiki میتوانید پرسشهای دقیقتری مطرح کنید.
- این پروژه همچنین امیدوار است توسعهدهندگان بیشتری را برای بهبود آن جذب کند.
اگر این پروژه برایتان مفید بود، خوشحال میشویم به آن star بدهید 🧡