{"id":29871548,"url":"https://github.com/arizkami/mikoview","last_synced_at":"2026-04-10T07:39:29.703Z","repository":{"id":306053627,"uuid":"1024492918","full_name":"arizkami/mikoview","owner":"arizkami","description":" Building the future of desktop applications with web technologies","archived":false,"fork":false,"pushed_at":"2025-07-27T05:32:21.000Z","size":492,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-30T20:46:09.163Z","etag":null,"topics":["bun","bunjs","chromium","cplusplus","desktop","electron-alternative","javascript","linux","mikoview","react","typescript","webapp","webview","windows"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arizkami.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-22T19:35:27.000Z","updated_at":"2025-07-27T05:32:24.000Z","dependencies_parsed_at":"2025-07-23T12:25:38.021Z","dependency_job_id":"fa65cf23-a7af-48cd-b916-c8d501e85750","html_url":"https://github.com/arizkami/mikoview","commit_stats":null,"previous_names":["arizkami/mikoview"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/arizkami/mikoview","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arizkami%2Fmikoview","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arizkami%2Fmikoview/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arizkami%2Fmikoview/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arizkami%2Fmikoview/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arizkami","download_url":"https://codeload.github.com/arizkami/mikoview/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arizkami%2Fmikoview/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274747257,"owners_count":25341831,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-12T02:00:09.324Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bun","bunjs","chromium","cplusplus","desktop","electron-alternative","javascript","linux","mikoview","react","typescript","webapp","webview","windows"],"created_at":"2025-07-30T20:00:35.993Z","updated_at":"2026-04-10T07:39:24.668Z","avatar_url":"https://github.com/arizkami.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MikoView\n\n![Development Status](https://img.shields.io/badge/status-in%20development-yellow?style=for-the-badge\u0026logo=clockify)\n![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20Linux%20%7C%20macOS-blue?style=for-the-badge\u0026logo=windows\u0026logo=linux\u0026logo=apple)\n![Build Status](https://img.shields.io/badge/build-failed-red?style=for-the-badge\u0026logo=github-actions)\n![Language](https://img.shields.io/badge/language-C%2B%2B17-blue?style=for-the-badge\u0026logo=cplusplus)\n![Framework](https://img.shields.io/badge/framework-CEF%20%7C%20SDL2-green?style=for-the-badge\u0026logo=chromium)\n![Frontend](https://img.shields.io/badge/frontend-React%20%7C%20Vue%20%7C%20TypeScript-61DAFB?style=for-the-badge\u0026logo=react\u0026logo=vue.js\u0026logo=typescript)\n![License](https://img.shields.io/badge/license-MIT-green?style=for-the-badge\u0026logo=license)\n![Build System](https://img.shields.io/badge/build-CMake-red?style=for-the-badge\u0026logo=cmake)\n![Version](https://img.shields.io/badge/version-0.1.0--dev-orange?style=for-the-badge\u0026logo=semver)\n\n![banner_x2](https://github.com/user-attachments/assets/b456c9c5-d1e1-454e-adc3-c0b9915aa279)\n\nA modern, production-ready desktop application framework built with React/Vue, CEF (Chromium Embedded Framework), and SDL2. MikoView provides an WebView development experience with native performance and cross-platform compatibility.\n\n## ✨ Features\n\n### 🚀 **Core Framework**\n- **Modern C++17** architecture with clean API design\n- **Production-ready** framework with modular CMake build system\n- **Cross-platform** support (Windows, Linux, macOS)\n- **Electron-style** window behavior (hidden until content loads)\n- **Dark mode** support with native OS integration\n- **Hot reload** development server integration\n\n### 🎨 **Frontend Flexibility**\n- **React** with TypeScript support\n- **Vue.js** with modern tooling\n- **Bun** runtime for fast development\n- **API testing** capabilities built-in\n- **Asset bundling** and optimization\n\n### 🔧 **Developer Experience**\n- **Modular CMake** system with automatic dependency management\n- **Automatic CEF/SDL2** download and configuration\n- **Remote debugging** support (Chrome DevTools)\n- **Comprehensive logging** system\n- **JavaScript API** for native integration\n- **Production packaging** (NSIS for Windows, DEB for Linux)\n\n## 📋 Prerequisites\n\n### Windows\n- **Visual Studio 2019** or later with C++ development tools\n- **CMake** 3.19 or higher\n- **Git** for dependency management\n- **NSIS** (optional, for creating installers)\n\n### Linux\n- **GCC 9+** or **Clang 10+** with C++17 support\n- **CMake** 3.19 or higher\n- **Git** for dependency management\n- **X11 development libraries**\n- **dpkg-dev** (optional, for creating .deb packages)\n\n### Development (Optional)\n- **Bun** or **Node.js** for frontend development\n- **TypeScript** for enhanced development experience\n\n## 🚀 Quick Start\n\n### 1. Clone and Build\n\n```bash\n# Clone the repository\ngit clone https://github.com/arizkami/mikoview\ncd mikoview\n\n# Configure and build\ncmake -B build -S . -DCMAKE_BUILD_TYPE=Release\ncmake --build build --config Release\n\n# Run the application\n.\\build\\Release\\MikoView.exe  # Windows\n./build/MikoView                # Linux\n```\n\n### 2. Development Mode\n\n```bash\n# Start frontend development server\ncd renderer/react  # or renderer/vue\nbun install\nbun run dev\n\n# Build in debug mode (connects to dev server)\ncmake -B build -S . -DCMAKE_BUILD_TYPE=Debug\ncmake --build build --config Debug\n.\\build\\Debug\\MikoView.exe\n```\n\n### 3. Create Production Installer\n\n```bash\n# Generate installer packages\npython tools/makeinstaller.py\n```\n\n## 🏗️ Project Architecture\n\n```\nmikoview/\n├── 📁 cmake/                   # Modular CMake system\n│   ├── MikoConfig.cmake        # Project configuration\n│   ├── MikoDependencies.cmake  # External dependencies\n│   ├── MikoMacros.cmake        # Reusable functions\n│   └── MikoPlatform.cmake      # Platform detection\n├── 📁 mikoview/                # Core framework\n│   ├── 📁 gui/                 # Platform-specific GUI\n│   ├── 📁 jsapi/               # JavaScript API bridge\n│   ├── mikoapp.hpp/cpp         # CEF application\n│   ├── mikoclient.hpp/cpp      # CEF browser client\n│   ├── logger.hpp/cpp          # Logging system\n│   └── app_config.hpp/cpp      # Configuration management\n├── 📁 example/                 # Example application\n│   ├── main.cpp                # Application entry point\n│   └── 📁 assets/              # Application resources\n├── 📁 renderer/                # Frontend frameworks\n│   ├── 📁 react/               # React + TypeScript\n│   ├── 📁 vue/                 # Vue.js + TypeScript\n│   └── 📁 api/                 # API testing tools\n├── 📁 tools/                   # Build and packaging tools\n│   ├── makeinstaller.py        # Installer generator\n│   └── iconconvert.py          # Icon conversion utility\n├── 📁 docs/                    # Documentation\n├── mikoview.hpp                # Main framework header\n├── mikoview.cpp                # Framework implementation\n└── CMakeLists.txt              # Main build configuration\n```\n\n## 🔧 Framework Usage\n\n### Simple Application\n\n```cpp\n#include \"mikoview.hpp\"\n\nint main() {\n    // One-liner application\n    return MikoView::Quick::RunApp(\n        \"http://localhost:3000\",  // URL\n        \"My Application\",         // Title\n        true                       // Debug mode\n    );\n}\n```\n\n### Advanced Configuration\n\n```cpp\n#include \"mikoview.hpp\"\n\nint main() {\n    MikoView::Config config;\n    config.window_title = \"Production App\";\n    config.window_width = 1400;\n    config.window_height = 900;\n    config.debug_mode = false;\n    config.startup_url = \"file:///app/index.html\";\n    config.start_hidden = true;  // Electron-style\n    \n    auto app = MikoView::Quick::CreateApp(config);\n    if (!app) {\n        return -1;\n    }\n    \n    // Set callbacks\n    app-\u003eSetReadyCallback([]() {\n        MikoView::Utils::LogInfo(\"Application ready!\");\n    });\n    \n    return app-\u003eRun();\n}\n```\n\n## 🎨 Frontend Development\n\n### React Development\n\n```bash\ncd renderer/react\nbun install\nbun run dev      # Development server\nbun run build    # Production build\nbun run preview  # Preview production build\n```\n\n### Vue Development\n\n```bash\ncd renderer/vue\nnpm install\nnpm run dev      # Development server\nnpm run build    # Production build\nnpm run preview  # Preview production build\n```\n\n### JavaScript API Integration\n\n```javascript\n// Call native functions from JavaScript\nwindow.mikoview.invoke('showNotification', {\n    title: 'Hello',\n    message: 'From native code!'\n});\n\n// File system access\nconst files = await window.mikoview.invoke('readDirectory', '/path/to/dir');\n```\n\n## 🔧 Build Configuration\n\n### CMake Options\n\n```bash\n# Enable/disable features\ncmake -B build -S . \\\n  -DMIKO_BUILD_EXAMPLES=ON \\\n  -DMIKO_BUILD_TESTS=OFF \\\n  -DMIKO_ENABLE_LOGGING=ON \\\n  -DCMAKE_BUILD_TYPE=Release\n```\n\n### Platform-Specific Options\n\n```bash\n# Windows with console (debug)\ncmake -B build -S . -DMIKO_WIN32_CONSOLE=ON\n\n# Linux with specific CEF version\ncmake -B build -S . -DCEF_VERSION=\"120.1.10+g3ce3184+chromium-120.0.6099.129\"\n```\n\n## 📦 Packaging and Distribution\n\n### Windows Installer (NSIS)\n\n```bash\npython tools/makeinstaller.py --platform windows\n# Generates: MikoView-Setup.exe\n```\n\n### Linux Package (DEB)\n\n```bash\npython tools/makeinstaller.py --platform linux\n# Generates: mikoview_0.1.0_amd64.deb\n```\n\n### Manual Packaging\n\n```bash\n# Using CPack\ncd build\ncpack -G NSIS     # Windows\ncpack -G DEB      # Linux\n```\n\n## 🐛 Troubleshooting\n\n### Build Issues\n\n| Issue | Solution |\n|-------|----------|\n| **CMake not found** | Install CMake 3.19+ and add to PATH |\n| **CEF download fails** | Check internet connection and firewall |\n| **Visual Studio errors** | Install C++ development workload |\n| **Linux build fails** | Install X11 development libraries |\n\n### Runtime Issues\n\n| Issue | Solution |\n|-------|----------|\n| **Application won't start** | Check `mikoview.log` for errors |\n| **Dev server connection fails** | Ensure React/Vue dev server is running |\n| **Window not showing** | Check timeout settings in debug mode |\n| **JavaScript API not working** | Verify invoke handlers are registered |\n\n### Debug Mode\n\n```bash\n# Enable detailed logging\nexport MIKO_LOG_LEVEL=DEBUG  # Linux\nset MIKO_LOG_LEVEL=DEBUG     # Windows\n\n# Remote debugging (Chrome DevTools)\n# Open: http://localhost:9222\n```\n\n## 🤝 Contributing\n\n1. **Fork** the repository\n2. **Create** a feature branch (`git checkout -b feature/amazing-feature`)\n3. **Commit** your changes (`git commit -m 'Add amazing feature'`)\n4. **Push** to the branch (`git push origin feature/amazing-feature`)\n5. **Open** a Pull Request\n\n### Development Guidelines\n\n- Follow **C++17** standards and best practices\n- Use **modern CMake** patterns (3.19+)\n- Maintain **cross-platform** compatibility\n- Add **comprehensive tests** for new features\n- Update **documentation** for API changes\n\n## 📄 License\n\nThis project is licensed under the **MIT License**. See the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- **CEF Team** for the Chromium Embedded Framework\n- **SDL Team** for cross-platform window management\n- **React/Vue Teams** for excellent frontend frameworks\n- **CMake Community** for build system excellence\n\n---\n\n**MikoView** - Building the future of desktop applications with web technologies 🚀\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farizkami%2Fmikoview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farizkami%2Fmikoview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farizkami%2Fmikoview/lists"}