happyx-native
Macro-oriented web-framework compiles to native written with ♥
Summary
| Latest Version | 0.3.2 |
|---|---|
| License | MIT |
| CI Status | Failing |
| Downloads | 0 |
| Last Indexed | 2026-07-21 05:26 |
Tags
Authors
- HapticX
Installation
nimble install happyx-native
choosenim install happyx-native
git clone https://github.com/HapticX/happyx-native
OS Compatibility
| Platform | Linux | macOS | Windows | FreeBSD | OpenBSD | NetBSD | Android | iOS | WASM | Embedded |
|---|---|---|---|---|---|---|---|---|---|---|
| happyx-native | ✓ | ✓ | ✓ | - | - | - | - | - | - | - |
Dependencies
| Package | Version | Optional |
|---|---|---|
| nim >= | 1.6.14 | No |
| cligen >= | 1.6.14 | No |
| happyx#head | - | No |
| jnim#head | - | No |
| rcedit | - | No |
| https://github.com/neroist/webview | - | No |
Source
| Repository | https://github.com/HapticX/happyx-native |
|---|---|
| Homepage | https://github.com/HapticX/happyx-native |
| Registry Source | nimble_official |
README
Install
nimble install happyx-native
or via GitHub:
nimble install https://github.com/HapticX/happyx-native
Features
- Support for Chrome/Yandex/Edge browsers & Webview
- Support for Android
Project Initialization
To init project you should use this command:
hpx-native init --name ProjectName
This command will automatically initialize your project.
It also fetches ANDROID_SDK_ROOT from environment (need for android compilation).
Building
To build your project you should move into project folder
cd ProjectName
and just build it!
hpx-native build
This automatically builds your project for your OS as target platform.
Cross-Compilation
To compile for other OS use
hpx-native build --target linux
Possible values: | OS | value | aliases | | :-- | :--: | :--: | | Windows | windows | win | | Linux | linux | unix | | MacOS | macosx | mac, macos | | Android | android | - |
Android compilation
You should have: - Android Studio with SDK and NDK; - Gradle >= 7.5; - Nim >= 2.0.0;
By default hpx-native build --target android supports all android architectures.
If you want to disable some architectures then use:
hpx-native build --target android --no-x86_64
Possible architectures
| Architecture | Disable Argument |
| :-- | :--: |
| x86 | --no-x86 |
| x86_64 | --no-x86_64 |
| armeabi-v7a | --no-armeabi-v7a |
| arm64-v8a | --no-arm64-v8a |
If you doesn't want to use gradle building then use
hpx-native build --target android --no-gradle
This command will build only .so libraries.
Building Assets
HappyX Native supports "building" assets - all resources from app directory (by default /assets) and all subdirectories are "sewn" into executable file.
This way you can distribute your application over the network with only one executable file.
This option can be disabled via
--no-build-assets
Webview Notes
When building with -d:webview, on Windows, you may notice that the window icon is not set
for you. This is due to a limitation within Happyx Native, that will be resolved in the
future. Currently, you may manually link in your desired window icon, like how is done in
https://github.com/neroist/webview/tree/main/examples/example_application/windows.
In addition, Webview does not currently support window positioning
(see https://github.com/webview/webview/issues/642), so the x and y arguments passed to
nativeApp will be ignored.
Browsers
If you want choose other browser instead of default - use these flags:
| browser | flag |
|---|---|
| Default browser | uses by default |
| Chrome | -d:chrome |
| Edge | -d:edge |
| Yandex | -d:yandex |
| Webview | -d:webview |