Без модерации, комиссий и SEO-мусора. Мгновенный поиск, проверка идей + гибридная раздача релизов в одном инструменте.
Привет, Хабр! На связи TechnoL0g. Если вы хоть раз пробовали опубликовать своё детище в официальных сторах или годами поддерживали open-source репозиторий, то прекрасно знаете, сколько боли приносит классическая дистрибуция.
Гейткиперы перегибают палку, модерация превратилась в рулетку, а пользователи ломают глаза и зубы, пытаясь найти среди SEO-мусора прямую ссылку на чистый, безопасный бинарник.
Я устал смотреть на этот цирк и написал KODE.market. Это не очередной клон Google Play и не надстройка над GitHub Search. Это первый в мире децентрализованный поисковик и раздатчик кода, где представлены GitHub и GitLab на равных условиях.
Ниже разложу по полочкам: как устроена архитектура проекта (на борту Vue 3, Rust/Tauri и LevelDB/SLED Desktop), как работает мгновенное переключение между платформами, как найти нужный модуль, проверить идею на валидность или скачать релиз за секунды без посредников и цензуры, какие боли мейнтейнеров закрыты и как заставить гибридную сеть из HTTP и BitTorrent качать релизы со скоростью света. Погнали!
🛠 Стек: Почему я отказался от «модных» баз и тяжелых платформ
Когда встал вопрос выбора архитектуры, был соблазн бахнуть классическую схему: раздутый SQL-монстр на удаленном сервере и тяжелый бэкенд. Но для высоконагруженного P2P-потока это путь в никуда. Я пошел по пути цифрового минимализма и выбрали жесткий, предсказуемый компилируемый стек:
-
Frontend: Vue 3 + Composition API + Pinia. Быстрый, легковесный каркас, упакованный с помощью Vite 5. Интерфейс оформлен в стиле темного кибер-панка с моноширинными шрифтами и четкими границами.
-
Desktop App: Обертка на Tauri 2.x (Rust core). Принципиально отказался от Electron, который сжирает оперативку как не в себя. Бинарник Tauri весит всего ~4 МБ (против 500+ МБ у аналогов на Chromium) и работает с системным WebView.
-
Backend: Node.js + Express (кэширующий сервак). Но самое интересное — это СУБД. Никаких внешних баз. Выбор пал на встроенную LevelDB (key-value). Это дает безумные 100K+ операций в секунду при нулевой стоимости обслуживания инфраструктуры
🔥 Какие боли разработчиков и пользователей закрывает KODE.market
Обычная дистрибуция open-source софта — это хаос. KODE.market решает все ключевые вопросы:
GitHub + GitLab
Обычно каталоги жестко завязаны на одну платформу (например, только GitHub). KODE — это первый мост, где GitHub и GitLab работают на равных правах. Потоки данных изолированы на уровне LevelDB/SLED: все кэши префиксованы (против github:repo: gitlab:project: ).
В один клик пользователь переключает провайдера, и вся витрина мгновенно перестраивается [ SRC: GITHUB | SRC: GITLAB ]. Это два параллельных пайплайна, работающих в унисон. Выбор провайдера сохраняется в localStorage, так что при следующем визите пользователь попадает в привычную экосистему.
-
Результаты поиска, карточки модулей, README, авторские профили
-
OG-карточки для шеринга в соцсетях
-
Фильтры, пагинация, рекомендации
Строгая изоляция, никакого cross-contamination: Когда активен GitLab, GitHub-специфичные фичи (Telegram-бот для релизов, BitTorrent-packager, вкладка
MY_REPOS) полностью скрываются. И наоборот.
🔍 Как KODE обходит лимиты API и держит систему в тонусе
Анонимные запросы к провайдерам исторически ограничены квотами. Наша система спроектирована так, чтобы пользователь никогда не видел «503» или капчи:
-
Агрессивное кэширование на уровне LevelDB/SLED: результаты поиска, метаданные, структуры релизов. Динамическая очистка и фоновый прогрев популярных модулей.
-
Умная ротация запросов: бэкенд балансирует потоки через пул авторизованных сессий, автоматически переключая каналы при приближении к лимитам.
-
Полный офлайн в Desktop: README, CHANGELOG и метаданные кэшируются в localStorage . При отсутствии интернета KODE.market продолжает работать как локальная база знаний.
-
Стрим трендов: система анализирует скорость прироста звёзд, коммитов и загрузок, формируя реальный топ TRENDING_MODULES из обоих провайдеров.
⚡ Архитектурные фичи под капотом
Давайте снимем обертку и посмотрим на самые сочные инженерные модули.
Движок «Терминала» и OS-фильтрация
Главный экран приложения встречает пользователя полноценной интерактивной командной строкой с ASCII-артом и поддержкой slash-команд (можно вбить search vue или запустить пасхалки типа ?matrix, ?cat etc).
Под капотом работает интеллектуальный парсер ассетов. KODE сканирует релизы, на лету определяет расширения ( .deb , .exe , .dmg , .apk ) и вешает четкие аппаратные теги: [ WIN_X64 ] , MAC_ARM64 ] , [ [ LNX_X64 ].
[!NOTE] Пользователь может включить флаг TOGGLE_RELEASES_ONLY , отсекая репозитории без готовых бинарников. Прямая доставка релизов пользователю.
Интегрированный VirusTotal-сканер: Доверие к бинарникам
Как доказать юзеру, что собранный .exe файл чист? В карточку модуля (Blueprint) встроен наш кастомный воркер проверки.
-
Любой авторизованный пользователь git может нажать кнопку [ VIRUS_CHECK // RUN ] .
-
Бэкенд ставит задачу в FIFO-очередь.
-
Файл скачивается потоком для моментального расчета SHA 256 прямо в браузере через Web Crypto API.
-
Происходит сверка с глобальным кэшем результатов VirusTotal ( vthash: ). Если файл уже проверялся ответ отдается за 0 миллисекунд без повторной траты трафика. Если нет — дергается VirusTotal API v3, а статус сканирования обновляется в реальном времени каждые 8 секунд.
Децентрализованная раздача: WebTorrent + WebSeed
Релизы на GitHub имеют свойство медленно скачиваться из-за ограничений CDN в определенных регионах. Мы внедрили встроенный torrent-packager релизов.
Владелец репозитория (верифицируемый через GitHub Device Flow OAuth + ?godmode) может в один клик упаковать свой релиз кнопкой [ PACK_AS_TORRENT ] . Бэкенд собирает все ассеты, создает компактный .torrent-файл и генерирует BIP-19
[GitHub Releases HTTP] <─── (WebSeed Редирект) <─── [KODE Прокси] │ ▼ [BitTorrent Swarm / Пиры]
Файлы физически не хранятся на наших серверах — торрент-метаданные используют технологию WebSeed, перенаправляя HTTP-запросы обратно на сервера GitHub. При этом наш встроенный серверный сидер на базе WebTorrent автоматически вступает в раздачу, объявляя инфо-хэш через публичные WSS трекеры. Пользователь может скачать софт через любой стандартный клиент (qBittorrent, Transmission) на максимальной скорости за счет гибридного скачивания (HTTP + P2P пиры).
🎲 Раздел [RND]: Андеграунд из обеих платформ + экспорт в RSS/Atom
Рандомные репозитории с пулом GitHub+GitLab
Алгоритмы современных сторов продвигают только гигантов. Наш движок RND выдаёт случайную выборку из живых, компилируемых проектов — агрегируя данные из обеих платформ.
-
Хотите найти скрытый цифровой алмаз на GitLab? Переключите провайдер и нажмите [ RND ].
-
Ищете свежую JS-библиотеку на GitHub? Тот же алгоритм, другой пул.
-
Общий пул: при активном режиме «оба провайдера» (в разработке) RND будет случайным образом выбирать из объединённой базы, давая равные шансы проектам из обеих экосистем.
RSS/Atom-фиды: агрегация без границ
Мы уважаем олдскульные технологии. Прямо под переключателем RND — кнопки быстрого экспорта: [ RSS ] [ ATOM ]
Что попадает в фид:
-
Новые релизы из отслеживаемых репозиториев
-
Обновления в TRENDING_MODULES
-
Случайные находки из RND (опционально)
-
Важно: фиды агрегируют события и из GitHub, и из GitLab, независимо от текущего переключателя интерфейса.
[!NOTE] Пользователь может в один клик забрать сформированный поток в Feedly, Inoreader или локальный агрегатор — без необходимости постоянно открывать маркетплейс.
🔒 Безопасность и Приватность: Нам не нужны ваши пароли
Архитектура KODE спроектирована так, что серверная часть выполняет исключительно роль умного кэширующего прокси-слоя:
-
Никаких баз с учётками. Авторизация — по чистому токену через нативный GitHub/GitLab Device Flow.
-
Токены не покидают клиент. В браузере — sessionStorage, в Tauri — шифрование в системном хранилище ОС (Keychain, Credential Manager, libsecret).
-
Логи чисты. Заголовок Authorization: Bearer используется только для проксирования запросов к API провайдеров. Эти данные никогда не пишутся на диск бэкенда.
Система оповещений: Абсолютная приватность vs Готовое облако
Мы категорически против классических централизованных баз данных, где хранятся ID пользователей и их подписки. Как видно на интерфейсе настроек (вкладка [ 07 // NOTIFY ]), в KODE.market система уведомлений разделена на два кардинально разных режима. Разработчик сам выбирает свой уровень паранойи.
Режим [ KODE_BOT ] — Быстрый старт из коробки
Если не хочется заморачиваться с деплоем, пользователь выбирает серверный режим:
-
Запускает официального бота @kodemarket_bot, вводит команду /start и получает свой уникальный числовой chat_id .
-
Вставляет его в поле на клиенте. Подписки кэшируются на бэкенде KODE в LevelDB, а наш круглосуточный сканер (с циклом SCAN_EVERY: 5M ) проверяет репозитории 24/7 и шлет алерты через официальный прокси-канал. Бэкенд видит только ваш chat_id и список отслеживаемых репозиториев никаких паролей или личных токенов.
Режим [ BYO_BOT ] (Bring Your Own Bot) Бескомпромиссный Self-Hosted
Для тех, кто ценит максимальную приватность (Max privacy) мы реализовали режим клиентского бота.
-
Вы создаете собственного независимого бота через @BotFather и вставляете токен прямо в десктопное приложение.
-
Ключевая фишка: Токен бота и все настройки хранятся исключительно локально в вашем десктопном приложении (или localStorage браузера) и никогда не передаются на бэкенд KODE.
-
Клиентское приложение или запущенный десктопный апп сами шлют запросы напрямую на сервера Telegram через api.telegram.org (с тактом опроса раз в 10 минут). Наш сервер вообще не участвует в этой цепочке. Полный сквозной контроль, но вкладку браузера или Desktop App нужно держать запущенными.
Синхронизация через Wishlist и Системные Тренды
Уведомления в десктоп-версии жестко завязаны на вкладку [ 04 // WISHLIST ] . Работает это по следующему алгоритму:
-
Когда вы серфите по каталогу и добавляете проект в Wishlist (список избранного), приложение автоматически подписывает нативный фоновый воркер Tauri на этот репозиторий. При выходе нового релиза десктоп выкидывает системный push алерт средствами вашей ОС
-
Чтобы держать руку на пульсе индустрии, мы вывели отдельный стрим [ TRENDING_MODULES ] . Система анализирует скорость прироста звезд, количество коммитов и скачиваний, формируя реальный топ того, что сейчас пользуется бешеной популярностью среди разработчиков, отсекая накрученный SEO-мусор
🎨 Генерация медиа-карточек (PNG) в один клик
Open-source разработчики часто не умеют (да и не хотят) красиво упаковывать свои релизы для соцсетей. Мы закрыли и эту боль.
В KODE встроен модуль динамического рендеринга графики. При публикации релиза или Blueprint-карточки система генерирует стильную, агрессивную PNG-карточку в стиле темного кибер брутализма с метаданными проекта, лицензией, тегами и графиком активности коммитов. Один клик — и у вас на руках готовый медиа-ассет, оптимизированный по формату для публикации в Twitter/X, Telegram-каналах или на том же Хабре. Больше никаких серых текстовых ссылок.
Система мгновенных нотификаций: Десктопный Native и Telegram-воркеры
Развернуть витрину репозиториев — половина дела. Настоящая задача — сделать так, чтобы пользователь вовремя узнавал о выходе критических патчей и новых релизов. Мы не хотели поднимать тяжелые пуш-сервера и собирать персональные данные, поэтому разделили систему уведомлений на два независимых контура.
Локальные уведомления в Desktop-клиенте (Tauri Native)
В десктопном приложении KODE за подписками на релизы следит нативный фоновый поток на Rust.
Вместо того чтобы бесконечно гонять тяжелый Chromium-процесс в фоне, Tauri-плагин @tauri-apps/plugin-notification взаимодействует напрямую с подсистемой уведомлений операционной системы (Windows Notification Center, macOS Notification Center или libnotify в Linux). Фоновый демон раз в несколько часов опрашивает хэши подписанных модулей из локального кэша, сверяет теги и, если вышел новый релиз, выбрасывает чистое системное push-уведомление. Никакого оверхеда по памяти, нулевой расход батареи на ноутбуках.
Матрица сравнения: Чем мы отличаемся от остальных
Чтобы окончательно снять вопросы в духе «Зачем это нужно, если есть Homebrew или Flathub», держите архитектурную таблицу:
|
Критерий |
KODE.market |
Homebrew / AUR |
Flathub / Snap Store |
|---|---|---|---|
|
Поддерживаемые платформы |
✅ GitHub + GitLab (полный паритет) |
❌ Только формулы/PR |
❌ Собственные репо |
|
Переключение в 1 клик |
✅ Да, с сохранениемконтекста |
❌ Нет |
❌ Нет |
|
Модерация |
Отсутствует (свобода автора) |
Строгая (через PR) |
Строгая (ревьюкомьюнити) |
|
P2P Дистрибуция |
✅ Да (WebTorrent +WebSeed)* |
❌ Нет |
❌ Нет |
|
Проверка безопасности |
✅ SHA-256 + VirusTotal live |
❌ Нет (на совестиавтора) |
⚠️ Внутренние проверки |
|
Донаты мейнтейнерам |
✅ Напрямую (crypto) |
❌ Нет |
❌ Нет |
|
RSS/Atom экспорт |
✅ Агрегация из обеихплатформ |
⚠️ Ограниченно |
❌ Нет |
-
BitTorrent-фича доступна для релизов с GitHub; для GitLab — в разработке.
🎯 Вместо заключения
Построен монолитный и быстрый инструмент, который убирает барьеры между тем, кто код написал, и тем, кому этот код нужен.
KODE.market – это не просто каталог. Это первый в мире децентрализованный поисковик, валидатор идей и P2P-раздатчик, который возвращает open-source его изначальную свободу с полной поддержкой GitHub И GitLab в одном интерфейсе.
👉 Попробуйте переключиться между провайдерами прямо сейчас: kode.market и напишите в комментариях, какая экосистема вам ближе. Или используйте обе?
Что скажете по поводу схемы гибридного WebSeed-кэширования и выбора встроенных nosql-хранилищ? Давайте обсудим первый релиз!
🔗 Web: https://kode.market
ссылка на оригинал статьи https://habr.com/ru/articles/1044544/