A modern, cross-platform tool to minify front-end web files (HTML/CSS/JS) and compile them into a single C array file (fsdata.c).
It is designed specifically to optimize web servers running on resource-constrained embedded systems (like STM32) using the lwIP TCP/IP stack. By heavily compressing assets before flashing them into the MCU, it saves precious ROM/RAM space while keeping your web development workflow smooth.
This project has continuously evolved to drop heavy dependencies and embrace modern tech stacks:
- V3 (Current & Recommended): A pure TypeScript / Node.js implementation. It features a beautiful web-based GUI, utilizes the state-of-the-art
html-minifier-next, and completely replaces the oldmakefsdata.exewith a safe, cross-platform TypeScript logic. (Zero C/Java/DLL dependencies!) - V2 (Legacy): A Python + CustomTkinter desktop application. It wraps the legacy Java compressors and C executables into a standalone Windows GUI.
- V1 (Legacy): The original Bare-metal PowerShell script workflow.
- Node.js (v18 or newer recommended)
- That's it! Works on Windows, macOS, and Linux.
If you must maintain the old workflows, you will need the following legacy assets:
- Java JDK (Tested on JDK 25 x64)
- Google HTML Compressor (
htmlcompressor-1.5.3.jar) - YUI Compressor (
yuicompressor-2.4.8.jar) - makefsdata.exe (Original lwIP C source)
- MSVCR100D.DLL (32-bit, version 10.0.40219.325 required for the legacy
.exe)
Depending on which version you want to use, please navigate to the respective directory and read its dedicated documentation:
- 👉 V3 Documentation (Highly Recommended)
- 👉 V2 Documentation
- 👉 V1 Documentation
CC4EmbeddedSystem
├── V1
│ ├── README.md
│ └── CC4EmbeddedSystem.ps1
├── V2
│ ├── README.md
│ ├── src
│ │ ├── main.py
│ │ ├── utils.py
│ │ └── CC_Errs.py
│ ├── Screenshot
│ │ ├── v2.0.1.png
│ │ └── v2.1.0.png
│ ├── .python-version
│ ├── pyproject.toml
│ └── uv.lock
├── V3
│ ├── README.md
│ ├── src
│ │ ├── gui.ts
│ │ ├── utils.ts
│ │ └── makefsdata.ts
│ ├── public
│ │ └── index.html
│ ├── Screenshot
│ │ └── v3.1.6.png
│ ├── package.json
│ ├── package-lock.json
│ └── tsconfig.json
├── .gitignore
├── LICENSE
└── README.md