57 lines
1.6 KiB
Markdown
57 lines
1.6 KiB
Markdown
# K-Convert
|
|
|
|
A privacy-first file converter that runs entirely in your browser using WebAssembly. No uploads, no servers—your files never leave your device.
|
|
|
|
## Features
|
|
|
|
- **100% Client-Side** — All conversions happen locally using WASM
|
|
- **Image Conversion** — JPEG, PNG, WebP, GIF, BMP, TIFF, HEIC, ICO, AVIF, JXL, SVG, PSD, RAW, TGA
|
|
- **Audio Conversion** — MP3, WAV, OGG, M4A, FLAC, AAC, AIFF, ALAC, WMA, Opus, M4R, AMR
|
|
- **Drag & Drop** — Simple file upload with batch support
|
|
- **Progress Tracking** — Real-time conversion progress
|
|
- **Dark Mode** — Beautiful dark theme enabled by default
|
|
|
|
## Tech Stack
|
|
|
|
- **Frontend:** React + TypeScript + Vite
|
|
- **UI:** Shadcn UI + Tailwind CSS
|
|
- **Image Processing:** [ImageMagick WASM](https://github.com/dlemstra/magick-wasm)
|
|
- **Audio Processing:** [FFmpeg WASM](https://github.com/nicholasrobinson/ffmpegwasm/ffmpeg.wasm)
|
|
- **HEIC Support:** [heic2any](https://github.com/nicholasrobinson/heic2any)
|
|
|
|
## Getting Started
|
|
|
|
```bash
|
|
# Install dependencies
|
|
npm install
|
|
|
|
# Start development server
|
|
npm run dev
|
|
|
|
# Build for production
|
|
npm run build
|
|
```
|
|
|
|
## Architecture
|
|
|
|
The app uses a Worker-Broker model for efficient processing:
|
|
|
|
```
|
|
Main Thread (UI) ←→ ConversionBroker ←→ Web Workers (WASM)
|
|
```
|
|
|
|
- **Image Worker** — Handles all image conversions via ImageMagick WASM
|
|
- **Audio Worker** — Handles all audio conversions via FFmpeg WASM
|
|
- **Adapters** — Clean abstractions for each conversion type
|
|
|
|
## Browser Requirements
|
|
|
|
Requires a modern browser with:
|
|
- WebAssembly support
|
|
- Web Workers
|
|
- SharedArrayBuffer (for FFmpeg)
|
|
|
|
## License
|
|
|
|
MIT License - see [LICENSE](LICENSE) for details.
|