Об этом проекте
# Psst
Psst — это высокопроизводительный многоплатформенный клиент Spotify с нативным графическим интерфейсом пользователя (GUI). Написанный полностью на Rust, он избегает накладных расходов приложений на основе Electron, обеспечивая легкий и отзывчивый опыт. Программное обеспечение полностью кроссплатформенно и поддерживает Windows, Linux и macOS.
## Ключевые особенности
- **Нативная производительность**: Создан на Rust для скорости и эффективности, использует библиотеку пользовательского интерфейса Druid для нативного внешнего вида и ощущения.
- **Основная функциональность**: Поддерживает воспроизведение треков в формате Vorbis, просмотр сохраненных альбомов и треков, отслеживаемых плейлистов и жанровых плейлистов, включая контент «Для вас».
- **Поиск и обнаружение**: Позволяет искать исполнителей, альбомы и треки непосредственно в приложении.
- **Поддержка подкастов**: Включает функциональность для просмотра и прослушивания подкастов.
- **Управление воспроизведением**: Оснащено управлением медиаклавишами, регулировкой громкости звука и нормализацией громкости аудио.
- **Темы**: Включает опцию темной темы.
- **Конфиденциальность**: Подключается только к официальным серверам Spotify; не передает данные домой. Учетные данные пользователя не хранятся локально; вместо этого используются многоразовые токены аутентификации от Spotify. Кэши хранятся локально и могут быть удалены в любое время.
## Требования
- Для использования приложения требуется учетная запись **Spotify Premium**.
- Начиная с февраля 2026 года, из-за изменений в политике доступа для разработчиков Spotify, Psst требует, чтобы пользователи регистрировали собственный идентификатор клиента разработчика Spotify для функций Web API (таких как поиск, доступ к библиотеке и плейлистам). Пользователи должны зарегистрировать приложение на панели управления разработчика Spotify и ввести идентификатор клиента на экране входа в Psst.
## Поддержка платформ
- **Windows**: Доступно через загрузку исполняемого файла.
- **macOS**: Доступно через установщик DMG.
- **Linux**: Доступно для архитектур x86_64 и aarch64, включая пакеты Debian (.deb).
- **OpenBSD**: Работа в процессе; поддержка может быть нестабильной.
Неофициальные сборки также доступны через Пользовательский репозиторий Arch (AUR) и Homebrew.
## Установка
Готовые бинарные файлы можно загрузить со [страницы релизов GitHub](https://github.com/jpochyla/psst/releases/latest).
### Сборка из исходного кода
Для сборки Psst из исходного кода вам понадобится последняя стабильная версия Rust (не менее 1.65.0).
#### Зависимости для Linux
- **Debian/Ubuntu**: `sudo apt-get install libssl-dev libgtk-3-dev libcairo2-dev libasound2-dev`
- **RHEL/Fedora**: `sudo dnf install openssl-devel gtk3-devel cairo-devel alsa-lib-devel`
#### Команды сборки
```shell
cargo build
# Добавьте --release для релизной сборки.
```
Для запуска GUI:
```shell
cargo run --bin psst-gui
```
Для создания установочного пакета (например, .app для macOS):
```shell
cargo install cargo-bundle
cargo bundle --release
```
## Структура проекта
- `/psst-core`: Основная библиотека, обрабатывающая TCP-сессии Spotify, получение аудио, декодирование, вывод и очередь воспроизведения.
- `/psst-gui`: GUI-приложение, созданное с помощью Druid.
- `/psst-cli`: Примерный CLI-инструмент для воспроизведения треков.
## Дорожная карта
Текущая разработка сосредоточена на улучшении стабильности и добавлении отсутствующих функций, таких как управление плейлистами (подписка/отписка, добавление/удаление треков), улучшенные механизмы кэширования, устойчивость к сетевым ошибкам и специфичные для ОС пакеты приложений. Будущие улучшения интерфейса включают двухпанельный макет, определение светлой/темной темы ОС и виртуализированные списки для лучшей производительности с большими библиотеками.
## Вклад
Вклад приветствуется. Проект полагается на усилия сообщества для улучшения функций и исправления ошибок. Для более подробной информации о структуре кодовой базы и руководствах по внесению вклада обратитесь к разделу разработки в репозитории.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.