Об этом проекте

## Geiravor Приложение для Android для [r/a/dio](https://r-a-d.io), сервиса потокового интернет-радио. Имя, видимое пользователю: **r/a/dio**. Пакет: `io.r_a_d.geiravor`. Лицензия: MIT (`LICENSE.md`). Авторские права © 2026 Sakurai Momoka. **1.0.0** — это полная переработка версии 0.3.0 с нуля. Последний исходный код 0.3.0 находится в `legacy/0.3` (тег `v0.3.0`). ### Установка В GitHub Releases доступны четыре APK-файла для боковой загрузки: Debug и Release × `arm64-v8a` (телефоны) и `x86_64` (Waydroid / большинство эмуляторов). Версия Release минифицирована с помощью R8 и подписана ключом проекта для боковой загрузки (не Play). Версия Debug подписана отладочным ключом. Пакет тот же (`io.r_a_d.geiravor`); установка одного заменяет другой. Последняя версия: [v1.0.1](https://github.com/sakuumomo/geiravor/releases/tag/v1.0.1). ### Сборка Nix — поддерживаемый набор инструментов: ``` nix develop # полная оболочка (JDK, Android SDK/NDK, DHU на Linux) nix develop .#rust # только Rust для хоста (fmt, clippy, tests, rustdoc) cargo test --manifest-path core/Cargo.toml ./gradlew :app:testDebugUnitTest :app:assembleDebug ./scripts/dhu.sh # DHU; ожидает Head Unit Server; --stop для завершения ``` Требуется Nix с поддержкой flake. `aarch64-linux` не является целью flake. После клонирования: ``` git config core.hooksPath .githooks ``` ### Документация | Файл | Назначение | |---|---| | [`docs/spec/`](docs/spec/) | Контракт продукта (что получает слушатель) | | [`docs/`](docs/README.md) | Разделение контракта репозитория и продукта | | [`AGENTS.md`](AGENTS.md) | Как работать в этом дереве | | [`CONTRIBUTING.md`](CONTRIBUTING.md) | Указатель на AGENTS и документацию | | [`SECURITY.md`](SECURITY.md) | Отчеты об уязвимостях | | [`CHANGELOG.md`](CHANGELOG.md) | История версий **этого** дерева | Сгенерированная документация по крейтам (GitHub Pages, не вики): [rustdoc](https://sakuumomo.github.io/geiravor/geiravor_core/) или `nix develop .#rust -c cargo doc --no-deps --open` (не вторая спецификация). Сайт Pages существует после того, как `main` имеет рабочий процесс `pages`.