Repository files navigation

🎞️ CompressorX

A fast, lightweight desktop video compressor built with Tauri (Rust) and TypeScript.


🚀 About the Project

CompressorX is a desktop application I built to solve my own video compression needs while diving deeper into modern web technologies like Tauri, Rust, and TypeScript. It's designed to be efficient, easy to use, and beginner-friendly—even if you're not familiar with video compression tools.


✨ Features

  • 🎥 Drag & Drop Support – Simply drag your video file into the app
  • 📊 Real-Time Progress – Watch your compression in action
  • 🎯 Resolution Options – Choose from Original, 720p, 480p, or 360p
  • ⚙️ Advanced Settings – Customize bitrate and buffer size
  • 🌙 Sleek Dark UI – Clean and modern interface
  • 📈 Compression Stats – See detailed info about file size reduction
  • 📁 Easy File Access – Open output files with a single click
  • 🦀 Built in Rust – High performance, low resource usage
  • 🎬 Bundled with FFmpeg – No external downloads required
  • 💻 Currently Windows Only – Support for 64-bit Windows 10/11

🧱 Tech Stack

LayerTech
FrontendTypeScript, HTML, Tailwind CSS
BackendRust (via Tauri)
ProcessingFFmpeg (integrated via Rust backend)

📁 Project Structure

CompressorX/
├── src/ # Frontend (TypeScript)
│ ├── handlers/ # UI events & logic
│ ├── services/ # FFmpeg interaction & file ops
│ ├── types/ # Type definitions
│ ├── utils/ # Helpers and utilities
│ ├── styles/ # Tailwind config & CSS
│ └── assets/ # Icons and static files
│
└── src-tauri/ # Backend (Rust + Tauri config)
├── src/ # Rust source
├── Cargo.toml # Rust dependencies
└── tauri.conf.json # Tauri app settings

🧰 Requirements

To use the app (users):

  • Windows 10 or 11 (64-bit)

To build from source (developers):


🛠️ Installation

🏁 Download Prebuilt App

Grab the latest Windows installer from the Releases page and run the .msi file.

🔧 Build from Source

  1. Install Git LFS

    choco install git-lfs # Or install from https://git-lfs.com/
  2. Clone the Repository

    git lfs install
    git clone https://github.com/Amitminer/CompressorX.git
    cd CompressorX
    git lfs pull # Pull FFmpeg binaries
  3. Install Node Dependencies

    npm install
  4. Run in Dev Mode

    npm run tauri dev
  5. Build for Production

    npm run tauri build

Output will be available in src-tauri/target/release.


🧪 How to Use

  1. Launch CompressorX
  2. Drag & drop your video or click Browse Files
  3. Pick a resolution
  4. Optionally adjust bitrate & buffer size
  5. Click Compress Video
  6. Monitor progress and view stats
  7. Open your compressed video instantly

📚 What I Learned

This project helped me grow in a lot of areas:

  • TypeScript + Tailwind CSS workflows
  • Rust's performance and safety benefits
  • Cross-platform desktop development with Tauri
  • How FFmpeg works under the hood
  • Bridging TypeScript and Rust
  • Clean UI/UX design for technical tools
  • Writing clear documentation (like this!)

🖼️ UI Preview

Home Screen

Home

File Upload

Upload

Settings Panel

Settings

Compression Progress

Progress

Completion Screen

Done


📄 License

This project is licensed under the MIT License. See the LICENSE file for details.


Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

🎞️ CompressorX

A fast, lightweight desktop video compressor built with Tauri (Rust) and TypeScript.


🚀 About the Project

CompressorX is a desktop application I built to solve my own video compression needs while diving deeper into modern web technologies like Tauri, Rust, and TypeScript. It's designed to be efficient, easy to use, and beginner-friendly—even if you're not familiar with video compression tools.


✨ Features

  • 🎥 Drag & Drop Support – Simply drag your video file into the app
  • 📊 Real-Time Progress – Watch your compression in action
  • 🎯 Resolution Options – Choose from Original, 720p, 480p, or 360p
  • ⚙️ Advanced Settings – Customize bitrate and buffer size
  • 🌙 Sleek Dark UI – Clean and modern interface
  • 📈 Compression Stats – See detailed info about file size reduction
  • 📁 Easy File Access – Open output files with a single click
  • 🦀 Built in Rust – High performance, low resource usage
  • 🎬 Bundled with FFmpeg – No external downloads required
  • 💻 Currently Windows Only – Support for 64-bit Windows 10/11

🧱 Tech Stack

LayerTech
FrontendTypeScript, HTML, Tailwind CSS
BackendRust (via Tauri)
ProcessingFFmpeg (integrated via Rust backend)

📁 Project Structure

CompressorX/
├── src/ # Frontend (TypeScript)
│ ├── handlers/ # UI events & logic
│ ├── services/ # FFmpeg interaction & file ops
│ ├── types/ # Type definitions
│ ├── utils/ # Helpers and utilities
│ ├── styles/ # Tailwind config & CSS
│ └── assets/ # Icons and static files
│
└── src-tauri/ # Backend (Rust + Tauri config)
├── src/ # Rust source
├── Cargo.toml # Rust dependencies
└── tauri.conf.json # Tauri app settings

🧰 Requirements

To use the app (users):

  • Windows 10 or 11 (64-bit)

To build from source (developers):


🛠️ Installation

🏁 Download Prebuilt App

Grab the latest Windows installer from the Releases page and run the .msi file.

🔧 Build from Source

  1. Install Git LFS

    choco install git-lfs # Or install from https://git-lfs.com/
  2. Clone the Repository

    git lfs install
    git clone https://github.com/Amitminer/CompressorX.git
    cd CompressorX
    git lfs pull # Pull FFmpeg binaries
  3. Install Node Dependencies

    npm install
  4. Run in Dev Mode

    npm run tauri dev
  5. Build for Production

    npm run tauri build

Output will be available in src-tauri/target/release.


🧪 How to Use

  1. Launch CompressorX
  2. Drag & drop your video or click Browse Files
  3. Pick a resolution
  4. Optionally adjust bitrate & buffer size
  5. Click Compress Video
  6. Monitor progress and view stats
  7. Open your compressed video instantly

📚 What I Learned

This project helped me grow in a lot of areas:

  • TypeScript + Tailwind CSS workflows
  • Rust's performance and safety benefits
  • Cross-platform desktop development with Tauri
  • How FFmpeg works under the hood
  • Bridging TypeScript and Rust
  • Clean UI/UX design for technical tools
  • Writing clear documentation (like this!)

🖼️ UI Preview

Home Screen

Home

File Upload

Upload

Settings Panel

Settings

Compression Progress

Progress

Completion Screen

Done


📄 License

This project is licensed under the MIT License. See the LICENSE file for details.


Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

🎞️ CompressorX

A fast, lightweight desktop video compressor built with Tauri (Rust) and TypeScript.


🚀 About the Project

CompressorX is a desktop application I built to solve my own video compression needs while diving deeper into modern web technologies like Tauri, Rust, and TypeScript. It's designed to be efficient, easy to use, and beginner-friendly—even if you're not familiar with video compression tools.


✨ Features

  • 🎥 Drag & Drop Support – Simply drag your video file into the app
  • 📊 Real-Time Progress – Watch your compression in action
  • 🎯 Resolution Options – Choose from Original, 720p, 480p, or 360p
  • ⚙️ Advanced Settings – Customize bitrate and buffer size
  • 🌙 Sleek Dark UI – Clean and modern interface
  • 📈 Compression Stats – See detailed info about file size reduction
  • 📁 Easy File Access – Open output files with a single click
  • 🦀 Built in Rust – High performance, low resource usage
  • 🎬 Bundled with FFmpeg – No external downloads required
  • 💻 Currently Windows Only – Support for 64-bit Windows 10/11

🧱 Tech Stack

LayerTech
FrontendTypeScript, HTML, Tailwind CSS
BackendRust (via Tauri)
ProcessingFFmpeg (integrated via Rust backend)

📁 Project Structure

CompressorX/
├── src/ # Frontend (TypeScript)
│ ├── handlers/ # UI events & logic
│ ├── services/ # FFmpeg interaction & file ops
│ ├── types/ # Type definitions
│ ├── utils/ # Helpers and utilities
│ ├── styles/ # Tailwind config & CSS
│ └── assets/ # Icons and static files
│
└── src-tauri/ # Backend (Rust + Tauri config)
├── src/ # Rust source
├── Cargo.toml # Rust dependencies
└── tauri.conf.json # Tauri app settings

🧰 Requirements

To use the app (users):

  • Windows 10 or 11 (64-bit)

To build from source (developers):


🛠️ Installation

🏁 Download Prebuilt App

Grab the latest Windows installer from the Releases page and run the .msi file.

🔧 Build from Source

  1. Install Git LFS

    choco install git-lfs # Or install from https://git-lfs.com/
  2. Clone the Repository

    git lfs install
    git clone https://github.com/Amitminer/CompressorX.git
    cd CompressorX
    git lfs pull # Pull FFmpeg binaries
  3. Install Node Dependencies

    npm install
  4. Run in Dev Mode

    npm run tauri dev
  5. Build for Production

    npm run tauri build

Output will be available in src-tauri/target/release.


🧪 How to Use

  1. Launch CompressorX
  2. Drag & drop your video or click Browse Files
  3. Pick a resolution
  4. Optionally adjust bitrate & buffer size
  5. Click Compress Video
  6. Monitor progress and view stats
  7. Open your compressed video instantly

📚 What I Learned

This project helped me grow in a lot of areas:

  • TypeScript + Tailwind CSS workflows
  • Rust's performance and safety benefits
  • Cross-platform desktop development with Tauri
  • How FFmpeg works under the hood
  • Bridging TypeScript and Rust
  • Clean UI/UX design for technical tools
  • Writing clear documentation (like this!)

🖼️ UI Preview

Home Screen

Home

File Upload

Upload

Settings Panel

Settings

Compression Progress

Progress

Completion Screen

Done


📄 License

This project is licensed under the MIT License. See the LICENSE file for details.


Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

🎞️ CompressorX

A fast, lightweight desktop video compressor built with Tauri (Rust) and TypeScript.


🚀 About the Project

CompressorX is a desktop application I built to solve my own video compression needs while diving deeper into modern web technologies like Tauri, Rust, and TypeScript. It's designed to be efficient, easy to use, and beginner-friendly—even if you're not familiar with video compression tools.


✨ Features

  • 🎥 Drag & Drop Support – Simply drag your video file into the app
  • 📊 Real-Time Progress – Watch your compression in action
  • 🎯 Resolution Options – Choose from Original, 720p, 480p, or 360p
  • ⚙️ Advanced Settings – Customize bitrate and buffer size
  • 🌙 Sleek Dark UI – Clean and modern interface
  • 📈 Compression Stats – See detailed info about file size reduction
  • 📁 Easy File Access – Open output files with a single click
  • 🦀 Built in Rust – High performance, low resource usage
  • 🎬 Bundled with FFmpeg – No external downloads required
  • 💻 Currently Windows Only – Support for 64-bit Windows 10/11

🧱 Tech Stack

LayerTech
FrontendTypeScript, HTML, Tailwind CSS
BackendRust (via Tauri)
ProcessingFFmpeg (integrated via Rust backend)

📁 Project Structure

CompressorX/
├── src/ # Frontend (TypeScript)
│ ├── handlers/ # UI events & logic
│ ├── services/ # FFmpeg interaction & file ops
│ ├── types/ # Type definitions
│ ├── utils/ # Helpers and utilities
│ ├── styles/ # Tailwind config & CSS
│ └── assets/ # Icons and static files
│
└── src-tauri/ # Backend (Rust + Tauri config)
├── src/ # Rust source
├── Cargo.toml # Rust dependencies
└── tauri.conf.json # Tauri app settings

🧰 Requirements

To use the app (users):

  • Windows 10 or 11 (64-bit)

To build from source (developers):


🛠️ Installation

🏁 Download Prebuilt App

Grab the latest Windows installer from the Releases page and run the .msi file.

🔧 Build from Source

  1. Install Git LFS

    choco install git-lfs # Or install from https://git-lfs.com/
  2. Clone the Repository

    git lfs install
    git clone https://github.com/Amitminer/CompressorX.git
    cd CompressorX
    git lfs pull # Pull FFmpeg binaries
  3. Install Node Dependencies

    npm install
  4. Run in Dev Mode

    npm run tauri dev
  5. Build for Production

    npm run tauri build

Output will be available in src-tauri/target/release.


🧪 How to Use

  1. Launch CompressorX
  2. Drag & drop your video or click Browse Files
  3. Pick a resolution
  4. Optionally adjust bitrate & buffer size
  5. Click Compress Video
  6. Monitor progress and view stats
  7. Open your compressed video instantly

📚 What I Learned

This project helped me grow in a lot of areas:

  • TypeScript + Tailwind CSS workflows
  • Rust's performance and safety benefits
  • Cross-platform desktop development with Tauri
  • How FFmpeg works under the hood
  • Bridging TypeScript and Rust
  • Clean UI/UX design for technical tools
  • Writing clear documentation (like this!)

🖼️ UI Preview

Home Screen

Home

File Upload

Upload

Settings Panel

Settings

Compression Progress

Progress

Completion Screen

Done


📄 License

This project is licensed under the MIT License. See the LICENSE file for details.


Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

🎞️ CompressorX

A fast, lightweight desktop video compressor built with Tauri (Rust) and TypeScript.


🚀 About the Project

CompressorX is a desktop application I built to solve my own video compression needs while diving deeper into modern web technologies like Tauri, Rust, and TypeScript. It's designed to be efficient, easy to use, and beginner-friendly—even if you're not familiar with video compression tools.


✨ Features

  • 🎥 Drag & Drop Support – Simply drag your video file into the app
  • 📊 Real-Time Progress – Watch your compression in action
  • 🎯 Resolution Options – Choose from Original, 720p, 480p, or 360p
  • ⚙️ Advanced Settings – Customize bitrate and buffer size
  • 🌙 Sleek Dark UI – Clean and modern interface
  • 📈 Compression Stats – See detailed info about file size reduction
  • 📁 Easy File Access – Open output files with a single click
  • 🦀 Built in Rust – High performance, low resource usage
  • 🎬 Bundled with FFmpeg – No external downloads required
  • 💻 Currently Windows Only – Support for 64-bit Windows 10/11

🧱 Tech Stack

LayerTech
FrontendTypeScript, HTML, Tailwind CSS
BackendRust (via Tauri)
ProcessingFFmpeg (integrated via Rust backend)

📁 Project Structure

CompressorX/
├── src/ # Frontend (TypeScript)
│ ├── handlers/ # UI events & logic
│ ├── services/ # FFmpeg interaction & file ops
│ ├── types/ # Type definitions
│ ├── utils/ # Helpers and utilities
│ ├── styles/ # Tailwind config & CSS
│ └── assets/ # Icons and static files
│
└── src-tauri/ # Backend (Rust + Tauri config)
├── src/ # Rust source
├── Cargo.toml # Rust dependencies
└── tauri.conf.json # Tauri app settings

🧰 Requirements

To use the app (users):

  • Windows 10 or 11 (64-bit)

To build from source (developers):


🛠️ Installation

🏁 Download Prebuilt App

Grab the latest Windows installer from the Releases page and run the .msi file.

🔧 Build from Source

  1. Install Git LFS

    choco install git-lfs # Or install from https://git-lfs.com/
  2. Clone the Repository

    git lfs install
    git clone https://github.com/Amitminer/CompressorX.git
    cd CompressorX
    git lfs pull # Pull FFmpeg binaries
  3. Install Node Dependencies

    npm install
  4. Run in Dev Mode

    npm run tauri dev
  5. Build for Production

    npm run tauri build

Output will be available in src-tauri/target/release.


🧪 How to Use

  1. Launch CompressorX
  2. Drag & drop your video or click Browse Files
  3. Pick a resolution
  4. Optionally adjust bitrate & buffer size
  5. Click Compress Video
  6. Monitor progress and view stats
  7. Open your compressed video instantly

📚 What I Learned

This project helped me grow in a lot of areas:

  • TypeScript + Tailwind CSS workflows
  • Rust's performance and safety benefits
  • Cross-platform desktop development with Tauri
  • How FFmpeg works under the hood
  • Bridging TypeScript and Rust
  • Clean UI/UX design for technical tools
  • Writing clear documentation (like this!)

🖼️ UI Preview

Home Screen

Home

File Upload

Upload

Settings Panel

Settings

Compression Progress

Progress

Completion Screen

Done


📄 License

This project is licensed under the MIT License. See the LICENSE file for details.


Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

🎞️ CompressorX

A fast, lightweight desktop video compressor built with Tauri (Rust) and TypeScript.


🚀 About the Project

CompressorX is a desktop application I built to solve my own video compression needs while diving deeper into modern web technologies like Tauri, Rust, and TypeScript. It's designed to be efficient, easy to use, and beginner-friendly—even if you're not familiar with video compression tools.


✨ Features

  • 🎥 Drag & Drop Support – Simply drag your video file into the app
  • 📊 Real-Time Progress – Watch your compression in action
  • 🎯 Resolution Options – Choose from Original, 720p, 480p, or 360p
  • ⚙️ Advanced Settings – Customize bitrate and buffer size
  • 🌙 Sleek Dark UI – Clean and modern interface
  • 📈 Compression Stats – See detailed info about file size reduction
  • 📁 Easy File Access – Open output files with a single click
  • 🦀 Built in Rust – High performance, low resource usage
  • 🎬 Bundled with FFmpeg – No external downloads required
  • 💻 Currently Windows Only – Support for 64-bit Windows 10/11

🧱 Tech Stack

LayerTech
FrontendTypeScript, HTML, Tailwind CSS
BackendRust (via Tauri)
ProcessingFFmpeg (integrated via Rust backend)

📁 Project Structure

CompressorX/
├── src/ # Frontend (TypeScript)
│ ├── handlers/ # UI events & logic
│ ├── services/ # FFmpeg interaction & file ops
│ ├── types/ # Type definitions
│ ├── utils/ # Helpers and utilities
│ ├── styles/ # Tailwind config & CSS
│ └── assets/ # Icons and static files
│
└── src-tauri/ # Backend (Rust + Tauri config)
├── src/ # Rust source
├── Cargo.toml # Rust dependencies
└── tauri.conf.json # Tauri app settings

🧰 Requirements

To use the app (users):

  • Windows 10 or 11 (64-bit)

To build from source (developers):


🛠️ Installation

🏁 Download Prebuilt App

Grab the latest Windows installer from the Releases page and run the .msi file.

🔧 Build from Source

  1. Install Git LFS

    choco install git-lfs # Or install from https://git-lfs.com/
  2. Clone the Repository

    git lfs install
    git clone https://github.com/Amitminer/CompressorX.git
    cd CompressorX
    git lfs pull # Pull FFmpeg binaries
  3. Install Node Dependencies

    npm install
  4. Run in Dev Mode

    npm run tauri dev
  5. Build for Production

    npm run tauri build

Output will be available in src-tauri/target/release.


🧪 How to Use

  1. Launch CompressorX
  2. Drag & drop your video or click Browse Files
  3. Pick a resolution
  4. Optionally adjust bitrate & buffer size
  5. Click Compress Video
  6. Monitor progress and view stats
  7. Open your compressed video instantly

📚 What I Learned

This project helped me grow in a lot of areas:

  • TypeScript + Tailwind CSS workflows
  • Rust's performance and safety benefits
  • Cross-platform desktop development with Tauri
  • How FFmpeg works under the hood
  • Bridging TypeScript and Rust
  • Clean UI/UX design for technical tools
  • Writing clear documentation (like this!)

🖼️ UI Preview

Home Screen

Home

File Upload

Upload

Settings Panel

Settings

Compression Progress

Progress

Completion Screen

Done


📄 License

This project is licensed under the MIT License. See the LICENSE file for details.


Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

🎞️ CompressorX

A fast, lightweight desktop video compressor built with Tauri (Rust) and TypeScript.


🚀 About the Project

CompressorX is a desktop application I built to solve my own video compression needs while diving deeper into modern web technologies like Tauri, Rust, and TypeScript. It's designed to be efficient, easy to use, and beginner-friendly—even if you're not familiar with video compression tools.


✨ Features

  • 🎥 Drag & Drop Support – Simply drag your video file into the app
  • 📊 Real-Time Progress – Watch your compression in action
  • 🎯 Resolution Options – Choose from Original, 720p, 480p, or 360p
  • ⚙️ Advanced Settings – Customize bitrate and buffer size
  • 🌙 Sleek Dark UI – Clean and modern interface
  • 📈 Compression Stats – See detailed info about file size reduction
  • 📁 Easy File Access – Open output files with a single click
  • 🦀 Built in Rust – High performance, low resource usage
  • 🎬 Bundled with FFmpeg – No external downloads required
  • 💻 Currently Windows Only – Support for 64-bit Windows 10/11

🧱 Tech Stack

LayerTech
FrontendTypeScript, HTML, Tailwind CSS
BackendRust (via Tauri)
ProcessingFFmpeg (integrated via Rust backend)

📁 Project Structure

CompressorX/
├── src/ # Frontend (TypeScript)
│ ├── handlers/ # UI events & logic
│ ├── services/ # FFmpeg interaction & file ops
│ ├── types/ # Type definitions
│ ├── utils/ # Helpers and utilities
│ ├── styles/ # Tailwind config & CSS
│ └── assets/ # Icons and static files
│
└── src-tauri/ # Backend (Rust + Tauri config)
├── src/ # Rust source
├── Cargo.toml # Rust dependencies
└── tauri.conf.json # Tauri app settings

🧰 Requirements

To use the app (users):

  • Windows 10 or 11 (64-bit)

To build from source (developers):


🛠️ Installation

🏁 Download Prebuilt App

Grab the latest Windows installer from the Releases page and run the .msi file.

🔧 Build from Source

  1. Install Git LFS

    choco install git-lfs # Or install from https://git-lfs.com/
  2. Clone the Repository

    git lfs install
    git clone https://github.com/Amitminer/CompressorX.git
    cd CompressorX
    git lfs pull # Pull FFmpeg binaries
  3. Install Node Dependencies

    npm install
  4. Run in Dev Mode

    npm run tauri dev
  5. Build for Production

    npm run tauri build

Output will be available in src-tauri/target/release.


🧪 How to Use

  1. Launch CompressorX
  2. Drag & drop your video or click Browse Files
  3. Pick a resolution
  4. Optionally adjust bitrate & buffer size
  5. Click Compress Video
  6. Monitor progress and view stats
  7. Open your compressed video instantly

📚 What I Learned

This project helped me grow in a lot of areas:

  • TypeScript + Tailwind CSS workflows
  • Rust's performance and safety benefits
  • Cross-platform desktop development with Tauri
  • How FFmpeg works under the hood
  • Bridging TypeScript and Rust
  • Clean UI/UX design for technical tools
  • Writing clear documentation (like this!)

🖼️ UI Preview

Home Screen

Home

File Upload

Upload

Settings Panel

Settings

Compression Progress

Progress

Completion Screen

Done


📄 License

This project is licensed under the MIT License. See the LICENSE file for details.


Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

🎞️ CompressorX

A fast, lightweight desktop video compressor built with Tauri (Rust) and TypeScript.


🚀 About the Project

CompressorX is a desktop application I built to solve my own video compression needs while diving deeper into modern web technologies like Tauri, Rust, and TypeScript. It's designed to be efficient, easy to use, and beginner-friendly—even if you're not familiar with video compression tools.


✨ Features

  • 🎥 Drag & Drop Support – Simply drag your video file into the app
  • 📊 Real-Time Progress – Watch your compression in action
  • 🎯 Resolution Options – Choose from Original, 720p, 480p, or 360p
  • ⚙️ Advanced Settings – Customize bitrate and buffer size
  • 🌙 Sleek Dark UI – Clean and modern interface
  • 📈 Compression Stats – See detailed info about file size reduction
  • 📁 Easy File Access – Open output files with a single click
  • 🦀 Built in Rust – High performance, low resource usage
  • 🎬 Bundled with FFmpeg – No external downloads required
  • 💻 Currently Windows Only – Support for 64-bit Windows 10/11

🧱 Tech Stack

LayerTech
FrontendTypeScript, HTML, Tailwind CSS
BackendRust (via Tauri)
ProcessingFFmpeg (integrated via Rust backend)

📁 Project Structure

CompressorX/
├── src/ # Frontend (TypeScript)
│ ├── handlers/ # UI events & logic
│ ├── services/ # FFmpeg interaction & file ops
│ ├── types/ # Type definitions
│ ├── utils/ # Helpers and utilities
│ ├── styles/ # Tailwind config & CSS
│ └── assets/ # Icons and static files
│
└── src-tauri/ # Backend (Rust + Tauri config)
├── src/ # Rust source
├── Cargo.toml # Rust dependencies
└── tauri.conf.json # Tauri app settings

🧰 Requirements

To use the app (users):

  • Windows 10 or 11 (64-bit)

To build from source (developers):


🛠️ Installation

🏁 Download Prebuilt App

Grab the latest Windows installer from the Releases page and run the .msi file.

🔧 Build from Source

  1. Install Git LFS

    choco install git-lfs # Or install from https://git-lfs.com/
  2. Clone the Repository

    git lfs install
    git clone https://github.com/Amitminer/CompressorX.git
    cd CompressorX
    git lfs pull # Pull FFmpeg binaries
  3. Install Node Dependencies

    npm install
  4. Run in Dev Mode

    npm run tauri dev
  5. Build for Production

    npm run tauri build

Output will be available in src-tauri/target/release.


🧪 How to Use

  1. Launch CompressorX
  2. Drag & drop your video or click Browse Files
  3. Pick a resolution
  4. Optionally adjust bitrate & buffer size
  5. Click Compress Video
  6. Monitor progress and view stats
  7. Open your compressed video instantly

📚 What I Learned

This project helped me grow in a lot of areas:

  • TypeScript + Tailwind CSS workflows
  • Rust's performance and safety benefits
  • Cross-platform desktop development with Tauri
  • How FFmpeg works under the hood
  • Bridging TypeScript and Rust
  • Clean UI/UX design for technical tools
  • Writing clear documentation (like this!)

🖼️ UI Preview

Home Screen

Home

File Upload

Upload

Settings Panel

Settings

Compression Progress

Progress

Completion Screen

Done


📄 License

This project is licensed under the MIT License. See the LICENSE file for details.


Releases

Packages

Used by

Contributors

Languages