rustore api researching
  • TypeScript 100%
Find a file
2026-03-01 13:45:10 +03:00
src fix: idk 2026-03-01 13:45:10 +03:00
.gitignore meow cat 2026-02-28 17:01:30 +03:00
LICENSE feat: add readme 2026-02-28 17:34:17 +03:00
package.json better cli 2026-02-28 17:21:57 +03:00
pnpm-lock.yaml meow cat 2026-02-28 17:01:30 +03:00
pnpm-workspace.yaml better cli 2026-02-28 17:21:57 +03:00
README.md feat: add readme 2026-02-28 17:34:17 +03:00
tsconfig.json meow cat 2026-02-28 17:01:30 +03:00

Общее описание

rustore-api - неофициальный TypeScript клиент для RuStore API.

на данный момент реализовано: искать приложения в каталоге получать информацию о приложении по package name получать ссылки на скачивание APK

апи ручки получены путём реверс-инжиниринга официального клиента ru.vk.store.

Использование

CLI команды

инфо о приложении:

pnpm app:info ru.ozon.app.android

поиск приложений:

pnpm app:search google

автодополнение (suggestions):

pnpm app:suggest yande

использование в качестве библиотеки

import { getAppInfo, getAppSummary, searchApps, getSearchSuggestions } from "./api";

// получить полную информацию
const info = await getAppInfo("ru.ozon.app.android");

// получить краткую сводку с download url
const summary = await getAppSummary("ru.ozon.app.android");
console.log(summary.downloadUrl);

// поиск
const results = await searchApps("telegram", { pageSize: 10 });

// автодополнение
const suggestions = await getSearchSuggestions("yand");

разработка

установка зависимостей:

pnpm install

сборка:

pnpm build

реверсинг клиента: используйте frida и скрипт bypass-ssl-pinning:

frida --codeshare Q0120S/bypass-ssl-pinning -U -f ru.vk.store

в какие ручки ходит оригинальный клиент?

Метод Эндпоинт Описание
GET /applicationData/overallInfo/{packageName} инфо о приложении
POST /applicationData/v2/download-link получение ссылки на скачивание
GET /applicationData/apps?query=... поиск приложений
GET /search/suggest?query=... автодополнение поиска

дисклеймер

это !неофициальный! клиент. апи оригинального клиента может измениться в любой момент.

Записка

эта библиотека (если ее можно так назвать) делалась для того, чтобы решить проблему скачивания apk из RuStore с которой я столкнулся. Изначально я не хотел ставить RuStore ради установки одного приложения поэтому сделал данную библиотеку на будущее чтобы любой мог изучив ее написать свой собственный клиент, или сделать свой сервис по скачивания приложений с RuStore. патчи не принимаются, вы можете спокойно перезалить данную библиотеку на ваш профиль в GitHub если вы этого пожелаете.