Getting Started
Develop new features for Luniris OS easily thanks to its modular architecture.
How Features Work
Features are lightweight programs that communicate with the Luniris OS main application through a local gRPC API. This architecture enables features to control various system components, including:
- Eye movement and positioning
- Bluetooth LE communication
- Settings storage
- And much more
Technical Implementation
The gRPC communication uses a UNIX socket file located at:
[temp_directory]/features.socket
Socket Path Examples by Language/Framework:
- C#
- Node.js
var socketPath = Path.Combine(Path.GetTempPath(), "features.socket");
const os = require("os");
const socketPath = `unix:${os.tmpdir()}/features.socket`;
Supported Development Options
Programming Languages and Frameworks
Thanks to gRPC's wide compatibility, you can develop features using:
- .NET 8 (C#)
- NodeJS (Javascript / Typescript)
- Native binary (wide compatibility)
Native binaries must be compiled for the ARM64 platform with static linking.
Feature Structure
Required Manifest Files
Each feature requires two JSON manifest files:
-
manifest.json- Contains feature metadata (name, version, ID, etc.)
- View the manifest.json guide
-
settings.manifest.json- Defines the settings structure and database fields
- View the settings.manifest.json guide
Packaging
Package all feature files, including the manifest files, into a standard ZIP archive.
Building Your Feature
-
Create a project directory containing:
- Your source code files
- The required manifest files
- Any additional assets
-
Package your feature into a ZIP file:
- Your source code files
- The required manifest files
-
Install your feature by following the installation guide