AChimera — это экспериментальный прокси-клиент на базе Android + Kotlin/Jetpack Compose + Rust/UniFFI. В текущем репозитории уже есть базовые возможности: Android-интерфейс, точка входа VPN-сервиса, импорт и проверка конфигурации, мост к Rust-ядру, просмотр логов и панель узлов. Цель проекта — разделить мобильный интерфейс и сетевое ядро на понятную многомодульную структуру.
Текущее название приложения — Chimera Lite. Пакет включает как Android UI-слой, так и Rust-ядро, экспортируемое в Kotlin через UniFFI.
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 автоматически выполняет две задачи перед компиляцией Android:
- Использует
cargo ndkдля сборкиchimera-ffiпод Android ABI - Запускает
uniffi-bindgenна основе сгенерированной динамической библиотеки и выводит Kotlin-привязки
Проект все еще развивается, и README описывает только то, что уже реализовано в текущем репозитории. Судя по существующим строкам и реализации, по-прежнему известны некоторые ограничения:
- после остановки VPN текущее поведение может перезапускать приложение, чтобы избежать небезопасного состояния выполнения
- некоторые настройки после смены конфигурации начинают полностью работать только после перезапуска VPN
clash-rs/clash-libвсе еще ограниченно совместим с частью конфигураций mihomo
Проект использует файл LICENSE в корне репозитория.
- Если у вас возникли проблемы при использовании или вопросы по реализации, смело открывайте Issue или PR.
- Даже если вы совсем новичок, после прочтения wiki можно продолжать задавать более конкретные вопросы.
- Проект также надеется привлечь больше разработчиков к дальнейшему улучшению.
Если проект оказался полезным, можно поставить star 🧡