Skip to content
/ NGenXX Public

A cross-platform framework based on modern C++, supporting biz dev via Lua & JS.

Notifications You must be signed in to change notification settings

R1NC/NGenXX

Repository files navigation

NGenXX

A cross-platform framework based on modern C++, supporting biz dev via Lua & JS.

πŸ‘‰ The Rust version(NGenRS) is in works.

Why Rust?
  • Guarantee memory safety by the compiler, not the programmer;
  • Powerful third-party dependency management tool - Crates, no need to struggle with CMake;
  • First-class WASM support, no other toolchain needed(Like Emscripten);
  • Complete cross-platform support - FFI, CXX, jni, ojbc2, ohos-rs.

Architecture

Arch

Progress

Android iOS HarmonyOS Windows macOS Linux WebAssembly
Lua Runtime βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ
JS Runtime βœ”οΈ βœ”οΈ βœ”οΈ ❌ βœ”οΈ ❌ πŸ› οΈ
Network βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ ⁉️
SQLite βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ πŸ› οΈ
Key-Value Store βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ βœ”οΈ πŸ› οΈ
JSON Codec βœ”οΈ βœ”οΈ βœ”οΈ πŸ› οΈ βœ”οΈ βœ”οΈ πŸ› οΈ
Crypto βœ”οΈ βœ”οΈ βœ”οΈ πŸ› οΈ βœ”οΈ βœ”οΈ πŸ› οΈ
Zip βœ”οΈ βœ”οΈ πŸ› οΈ πŸ› οΈ βœ”οΈ βœ”οΈ πŸ› οΈ
Device Info βœ”οΈ βœ”οΈ βœ”οΈ πŸ› οΈ βœ”οΈ πŸ› οΈ ❔
  • ❔ : Unknown;
  • β­• : Not supported;
  • ❌ : With compiling error;
  • πŸ› οΈ : Under developing;
  • ⁉️ : With running error;
  • βœ”οΈ : Running well.

Unsupported Features in WebAssembly

Requirements

  • C99, C++23;
  • Clang 15+;
  • CMake 3.10+;
  • Xcode 14.0+, for iOS & macOS;
  • Android Studio(or IntelliJ IDEA) with NDK r25+;
  • DevEco Studio with Native SDK, for HarmonyOS;
  • Emscripten, for WebAssembly.

C++ New Features Compatibility

Feature Standard Unsupported Platforms
std::format C++20 iOS 16.3-, macOS 13.3-, HarmonyOS Next;
std::ranges C++20 iOS 16.3-, macOS 13.3-, HarmonyOS Next;
std::ranges::chunk_view C++23 Not clear, maybe all?

Dependencies