Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

I built Cremeplay, a YouTube Music desktop client in Rust and Tauri that uses ~60MB RAM

Описание и применение

Cremeplay — легковесный клиент YouTube Music, написанный на Rust и Tauri, использующий ~60 МБ RAM в фоне и ~150 МБ при открытом окне, благодаря прямому обращению к Innertube API, очистке рабочего набора и группировке процессов в Windows Job Object.

Задача

Most YouTube Music desktop apps built on Electron or heavy web wrappers consume 500–800 MB of RAM, leaving background processes and large buffers in memory.

Результат

Cremeplay achieves a ~60 MB RAM footprint in background and ~150 MB with an open window, compared to 400–800 MB for Electron wrappers, while providing full YouTube Music discovery, SponsorBlock, Discord Rich Presence, and OBS Tuna integration.

Рабочий процесс

  • Built a Rust Innertube client to avoid loading the Google Polymer web app
  • Implemented recursive working set trimming via K32EmptyWorkingSet to drop stale memory pages
  • Bundled WebView2 child processes into a Windows Job Object with JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE
  • Hooked into IAudioSessionManager2/IAudioSessionControl to label the audio stream as Cremeplay

Доказательства

Most YouTube Music desktop apps are built on Electron or heavy web wrappers. Every time I had Pear Desktop or a browser wrapper open in the background while working or gaming, it was sitting at 500 MB to 800 MB of RAM just to play audio.

Источник

I built Cremeplay in Rust and Tauri v2.

Источник

RAM (Tray / Background) ~60 MB for Cremeplay vs ~400‑500 MB for Pear Desktop.

Источник

Direct Rust Innertube client: Instead of loading the bloated Google Polymer web app and all its tracking scripts, Cremeplay talks directly to YouTube Music's Innertube API from asynchronous Rust.

Источник

Recursive Working Set Trimming: Chromium-based webviews love holding onto inactive page caches forever. Cremeplay traverses its process tree and calls K32EmptyWorkingSet periodically to drop stale memory pages back to the OS.

Источник

Windows Job Object bundling: All child WebView2 processes are attached to a parent Windows Job Object (JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE), so they group cleanly under Cremeplay and never leave orphan processes behind when you quit.

Источник

  • Дата записи: 2026-10-07T05:41:05.251Z