Welcome to Secure OS Layer – a robust, privacy-centric operating system layer designed to empower developers and protect user data. This project bridges the gap between your OS and AI-powered applications by offering:
- User Data Protection 🔐
Users control which apps can access their data. - Shared Memory 🧠
Centralized data storage for user context and preferences. - Curated AI App Store 📲
Discover and install AI apps safely. - Developer-Friendly APIs & SDK 🛠️
Simplify integration with clear APIs and a ready-to-use SDK. - Sandboxing & Security Enhancements 🏰
Isolate apps using Docker (on Windows) for maximum security.
- Data Protection: Users grant granular access permissions.
- Shared Memory: Consolidated storage for user data.
- App Store: A secure marketplace for AI apps.
- Developer SDK: Easy-to-use API for developers.
- Sandboxing: Isolated execution using Docker containers.
- Security: Built-in audit logging and encryption options.
Secure OS Layer comprises three primary components:
-
Rust Backend (Actix-Web):
Provides RESTful APIs, manages user data with SQLite, validates app permissions, and handles sandboxing (via Docker). -
Electron Front-End:
A modern, dark/light mode UI for browsing and installing AI apps. -
Developer SDK (JavaScript):
A lightweight SDK that wraps the REST API, making integration effortless for developers.
-
Clone the Repository:
git clone https://github.com/yashasrnair/secure_os_layer.git cd secure_os_layer -
Initialize the Database:
Ensure your init.sql (located in the repository root) contains:
CREATE TABLE IF NOT EXISTS user_data ( id TEXT PRIMARY KEY, key TEXT NOT NULL, value TEXT NOT NULL ); CREATE TABLE IF NOT EXISTS registered_apps ( app_id TEXT PRIMARY KEY, app_name TEXT NOT NULL, allowed_permissions TEXT ); CREATE TABLE IF NOT EXISTS installed_apps ( install_id INTEGER PRIMARY KEY AUTOINCREMENT, app_id TEXT NOT NULL, install_date TEXT DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY(app_id) REFERENCES registered_apps(app_id) );
Run the script:
sqlite3 secure_os_layer.db < init.sql3.Build and Run:
cargo build --release
cargo runYour backend should be running at http://127.0.0.1:8080
1.Navigate to the UI Directory:
cd ui-electron
npm install
npm startThe Electron app will launch, letting you browse and install AI apps.
A JavaScript SDK is provided in the sdk/ folder. To use it:
1.Install via npm (after publishing) or locally:
npm install secure-os-layer-sdk
2.Example Usage:
import { SecureOSLayerSDK } from "secure-os-layer-sdk";
const sdk = new SecureOSLayerSDK("http://127.0.0.1:8080", "my-app-id");
sdk.getStatus()
.then(status => console.log("Status:", status))
.catch(err => console.error("Error:", err));For more details, see the SDK Documentation.
1.Run:
cargo build --release2.Find the binary at:
target\release\secure_os_layer.exe1.Install Inno Setup from jrsoftware.org.
2.Create an Inno Setup Script (SecureOSLayerInstaller.iss):
[Setup]
AppName=Secure OS Layer
AppVersion=1.0.0
DefaultDirName={pf}\Secure OS Layer
DefaultGroupName=Secure OS Layer
OutputBaseFilename=SecureOSLayerInstaller
Compression=lzma
SolidCompression=yes
[Files]
Source: "target\release\secure_os_layer.exe"; DestDir: "{app}"; Flags: ignoreversion
[Icons]
Name: "{group}\Secure OS Layer"; Filename: "{app}\secure_os_layer.exe"3.Compile the Script using Inno Setup to produce the installer EXE.
We welcome contributions! 🚀 Follow these steps to contribute:
1.Fork the repository.
2.Create a new branch: git checkout -b my-feature-branch.
3.Make your changes and commit them: git commit -m "Add new feature".
4.Push to the branch: git push origin my-feature-branch.
5.Open a pull request.
Contributions are welcome! Please see CONTRIBUTING.md for our guidelines on how to contribute to the project.
This project is licensed under the MIT License. See the LICENSE file for details.
Email: support@cybernix.in
GitHub: @yashasrnair
Website: https://cybernix.in