{"id":25117838,"url":"https://github.com/r1nc/ngenxx","last_synced_at":"2025-04-02T12:19:02.807Z","repository":{"id":276248246,"uuid":"848019960","full_name":"R1NC/NGenXX","owner":"R1NC","description":"A cross-platform framework based on modern C++, supporting biz dev via Lua \u0026 JS.","archived":false,"fork":false,"pushed_at":"2025-03-31T08:47:47.000Z","size":2088,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-31T09:33:48.183Z","etag":null,"topics":["android","c","cpp","cpp11","cpp14","cpp17","cpp20","cpp23","cross-platform","crossplatform","harmonyos","ios","js","linux","lua","macos","typescript","wasm","webassembly","windows"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/R1NC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-08-27T01:33:19.000Z","updated_at":"2025-03-31T08:47:51.000Z","dependencies_parsed_at":"2025-03-17T08:34:37.859Z","dependency_job_id":"98ee3320-e74a-40ab-950f-37f967bf0108","html_url":"https://github.com/R1NC/NGenXX","commit_stats":null,"previous_names":["r1nc/ngenxx"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/R1NC%2FNGenXX","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/R1NC%2FNGenXX/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/R1NC%2FNGenXX/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/R1NC%2FNGenXX/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/R1NC","download_url":"https://codeload.github.com/R1NC/NGenXX/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246811312,"owners_count":20837753,"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","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":["android","c","cpp","cpp11","cpp14","cpp17","cpp20","cpp23","cross-platform","crossplatform","harmonyos","ios","js","linux","lua","macos","typescript","wasm","webassembly","windows"],"created_at":"2025-02-08T03:25:54.787Z","updated_at":"2025-04-02T12:19:02.801Z","avatar_url":"https://github.com/R1NC.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NGenXX\n\nA cross-platform framework based on modern C++, supporting biz dev via Lua \u0026 JS.\n\n\u003e :point_right: The Rust version([NGenRS](https://github.com/R1NC/NGenRS)) is in works.\n\u003e \u003cdetails\u003e\n\u003e \u003csummary\u003eWhy Rust?\u003c/summary\u003e\n\u003e \n\u003e * Guarantee memory safety by the compiler, not the programmer;\n\u003e * Powerful third-party dependency management tool - [Crates](https://crates.io/), no need to struggle with CMake;\n\u003e * First-class [WASM support](https://rustwasm.github.io/docs/book/), no other toolchain needed(Like [Emscripten](https://emscripten.org/));\n\u003e * Complete cross-platform support - [FFI](https://doc.rust-lang.org/nomicon/ffi.html), [CXX](https://cxx.rs/), [jni](https://docs.rs/jni/latest/jni/), [ojbc2](https://docs.rs/objc2/latest/objc2/), [ohos-rs](https://ohos.rs/).\n\n## Architecture\n\n![Arch](/res/arch.svg)\n\n## Progress\n\n| | Android | iOS | HarmonyOS  | Windows | macOS | Linux | WebAssembly |\n| :-- | :--: | :--: |:--: |:--: | :--: | :--: |:--: |\n| Lua Runtime |✔️|✔️|✔️|✔️|✔️|✔️|✔️|\n| JS Runtime |✔️|✔️|✔️|❌|✔️|❌|🛠️|\n| Network |✔️|✔️|✔️|✔️|✔️|✔️|⁉️|\n| SQLite |✔️|✔️|✔️|✔️|✔️|✔️|🛠️|\n| Key-Value Store |✔️|✔️|✔️|✔️|✔️|✔️|🛠️|\n| JSON Codec |✔️|✔️|✔️|🛠️|✔️|✔️|🛠️|\n| Crypto |✔️|✔️|✔️|🛠️|✔️|✔️|🛠️|\n| Zip |✔️|✔️|🛠️|🛠️|✔️|✔️|🛠️|\n| Device Info |✔️|✔️|✔️|🛠️|✔️|🛠️|❔|\n\n- ❔ : Unknown;\n- ⭕ : Not supported;\n- ❌ : With compiling error;\n- 🛠️ : Under developing;\n- ⁉️ : With running error;\n- ✔️ : Running well.\n\n### Unsupported Features in WebAssembly\n\n- Load Lua script with file;(Will trigger a prompt window)\n- [C/C++ callback JS function in async thread][2].\n\n## Requirements\n\n- C99, C++23;\n- Clang 15+;\n- CMake 3.10+;\n- Xcode 14.0+, for iOS \u0026 macOS;\n- Android Studio(or IntelliJ IDEA) with NDK r25+;\n- DevEco Studio with Native SDK, for HarmonyOS;\n- [Emscripten][1], for WebAssembly.\n\n## C++ New Features Compatibility\n\n| Feature | Standard | Unsupported Platforms |\n| :-- | :--: | :--: |\n| [std::format][12] | C++20 | iOS 16.3-, macOS 13.3-, HarmonyOS Next; |\n| [std::ranges][13] | C++20 | iOS 16.3-, macOS 13.3-, HarmonyOS Next; |\n| [std::ranges::chunk_view][14] | C++23 | *Not clear, maybe all?* |\n\n## Dependencies\n\n- [ada-url][3]: URL parser;(Requires `std::ranges` in C++20)\n- [curl][4]: Networking;\n- [cJSON][5]: JSON codec;\n- [libuv][6]: Asynchronous I/O;\n- [lua][7]: Lua runtime;\n- [MMKV][8]: Key-value storage;\n- [openssl][9]: Crypto;\n- [quickjs][10]: JS runtime;\n- [sqlite][11]: DB storage.\n\n[1]: https://emscripten.org/docs/getting_started/downloads.html#sdk-download-and-install\n[2]: https://github.com/emscripten-core/emscripten/issues/16567\n[3]: https://github.com/ada-url/ada\n[4]: https://github.com/curl/curl\n[5]: https://github.com/DaveGamble/cJSON\n[6]: https://github.com/libuv/libuv\n[7]: https://github.com/lua/lua\n[8]: https://github.com/Tencent/MMKV\n[9]: https://github.com/openssl/openssl\n[10]: https://github.com/bellard/quickjs\n[11]: https://github.com/sqlite/sqlite\n[12]: https://en.cppreference.com/w/cpp/utility/format/format\n[13]: https://en.cppreference.com/w/cpp/ranges\n[14]: https://en.cppreference.com/w/cpp/ranges/chunk_view\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fr1nc%2Fngenxx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fr1nc%2Fngenxx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fr1nc%2Fngenxx/lists"}