2025-01-22 16:31:46 +00:00
|
|
|
# LNXCORE
|
2025-08-17 00:56:07 +00:00
|
|
|
***
|
2025-01-22 16:19:57 +00:00
|
|
|
|
2025-08-17 00:56:07 +00:00
|
|
|
Leenkx Runtime for the Full Stack Software Development Kit.
|
|
|
|
|
|
|
|
Based on these projects:
|
|
|
|
[Krom](https://github.com/Kode/Krom)
|
|
|
|
[Kinc](https://github.com/Kode/Kinc)
|
|
|
|
[V8](https://github.com/v8/v8)
|
|
|
|
[uWS](https://github.com/uNetworking/uWebSockets)
|
2025-01-22 16:19:57 +00:00
|
|
|
|
|
|
|
|
|
|
|
```bash
|
2025-01-22 16:31:46 +00:00
|
|
|
git clone --recursive https://dev.leenkx.com/LeenkxTeam/LNXCORE
|
|
|
|
cd LNXCORE
|
2025-01-22 16:19:57 +00:00
|
|
|
```
|
|
|
|
|
2025-08-17 00:56:07 +00:00
|
|
|
**Linux**
|
|
|
|
```bash
|
|
|
|
Kinc/make -g opengl --compiler clang --compile
|
|
|
|
cd Deployment
|
|
|
|
strip Leenkx-Core
|
|
|
|
```
|
|
|
|
|
2025-01-22 16:19:57 +00:00
|
|
|
**Windows**
|
|
|
|
```bash
|
|
|
|
# Unpack `v8\libraries\win32\release\v8_monolith.7z` using 7-Zip - Extract Here (exceeds 100MB)
|
|
|
|
Kinc/make -g direct3d11
|
2025-08-17 00:56:07 +00:00
|
|
|
# Open generated Visual Studio project at `build\Leenkx-Core.sln`
|
2025-01-22 16:19:57 +00:00
|
|
|
# Build for x64 & release
|
|
|
|
```
|
|
|
|
|
|
|
|
**macOS**
|
|
|
|
```bash
|
|
|
|
Kinc/make -g metal
|
2025-08-17 00:56:07 +00:00
|
|
|
# Open generated Xcode project at `build/Leenkx-Core.xcodeproj`
|
2025-01-22 16:19:57 +00:00
|
|
|
# Build
|
|
|
|
```
|
2025-08-17 00:56:07 +00:00
|
|
|
|
|
|
|
|
|
|
|
## Networking Setup Instructions
|
|
|
|
***
|
|
|
|
*Native websockets are included in the build with the networking flag enabled while the uWS flag and implementation files are experimental.
|
|
|
|
|
|
|
|
To get the uWS files to work proceed with the following:
|
|
|
|
#### - Add uWebSockets as a submodule to your project:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
git submodule add https://github.com/uNetworking/uWebSockets.git
|
|
|
|
git submodule update --init --recursive
|
|
|
|
```
|
|
|
|
|
|
|
|
## Features
|
|
|
|
|
|
|
|
### Fastest WebSocket library available (~8M connections possible)
|
|
|
|
- **Zero-copy**: Minimal data copying between C++ and JavaScript
|
|
|
|
- **Event-driven**: Non-blocking, asynchronous operations
|
|
|
|
- **Cross-platform**: Works on Windows, macOS, and Linux
|
|
|
|
- **Small footprint**: Minimal memory overhead per connection
|
|
|
|
- **Efficient callbacks**: Direct V8 bindings without intermediate layers
|
|
|
|
- **Resource cleanup**: Automatic cleanup of closed connections
|