JadeView E Language SDK
Project Introduction
JadeView E Language SDK is a WebView window library specially designed for E Language developers. It is developed based on Rust and provides easy-to-use APIs, allowing developers to rapidly build modern desktop applications.
Core Features
- Cross-platform Kernel: The underlying kernel supports Windows and Linux, while the E Language binding only works on Windows.
- WebView Rendering: Supports HTML, CSS, JavaScript, Vue and React web pages.
- Window Management: Standard / borderless windows, Mica transparency, screenshot protection, light & dark theme switching.
- Event System: Callback via subroutine pointers, covering full lifecycle events of windows, IPC and global hotkeys.
- Built-in private
jade://resource protocol, no extra HTTP server required for static asset loading. - Automatic secure memory management, all APIs are thread-safe.
- Two-way IPC communication, with built-in system file dialog and message popup utilities.
- JAPK encrypted resource package (paid feature): In-memory loading with signature anti-tampering verification.
- System Utilities: System tray, global hotkeys, custom URL protocols, YAML configuration, NTP time synchronization, clipboard text read & write.
Memory Management Mechanism
The underlying jadeview_x86.dll adopts Rust’s memory model to avoid memory leaks and crashes caused by wild pointers:
- Safe UTF8 string handling with
CStrandCString. - Strings generated in callbacks are automatically released by the kernel; no manual disposal required.
- No direct
malloc/freecalls at the low level; all memory is managed uniformly by Rust runtime. - Strict lifecycle control for callback resources to ensure timely recycling.
- Mutex locks protect all global states, enabling concurrent calls from multiple threads.
Quick Start
Register app ready event:
JadeView.App.RegisterEvent(#Event_AppReady, &CallbackSubroutine). This step must run before kernel initialization.Initialize kernel: Call
JadeView.App.Initto load and initializejadeview_x86.dll.Run message loop: Invoke
JadeView.App.MessageLoop.Create WebView window: Call
MarkdownJadeView.Window.Createinside the
Markdown#Event_AppReadycallback.
Important: Windows can only be created after the
#Event_AppReadyevent fires.Register other events: Use
JadeView.App.RegisterEventto bind other event callbacks.Clean up resources: Listen to the
#Event_AllWindowsClosedevent and callJadeView.App.Exitto release all resources.
Notes
- All APIs are thread-safe and can be invoked from multiple threads.
JadeView.Window.Createreturns a window ID immediately, but the actual window creation runs asynchronously on the event loop thread.- All Chinese text input parameters must be converted via
GBKToUTF8(). - A global singleton is automatically included after importing
JadeView.ec; no manual declaration is needed. - Always call
JadeView.App.Exitto release resources after usage.
Supported Platforms
- Windows 10 1903 and above, Windows 11 (the only compatible OS for the E Language SDK)