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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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