UNPKG

@isthatuzii/create-nano-app

Version:

Desktop application scaffolding tool for the Nano Framework

155 lines (99 loc) 5.58 kB
# @isthatuzii/create-nano-app [![Version](https://img.shields.io/badge/version-2.0.0-blue)]() [![License: CC BY--ND 4.0](https://img.shields.io/badge/License-CC%20BY--ND%204.0-lightgrey)](https://creativecommons.org/licenses/by-nd/4.0/) [![Built by Imperium Interactive](https://img.shields.io/badge/built%20by-Imperium%20Interactive-lightgrey)]() What is nano.exe? nano.exe is a framework written in rust that allows you to create native desktop applications with a rust backend and a solidjs frontend. It is inspired by Tauri but has minimal bloat and is sub 250 crates, whereas Tauri V2 is over 400 crates, the npm install is very small as well. This is mainly because the computers at my work are very slow and using nano is much faster than Tauri. This Framework is incredibly bare bones but is capable of creating production quality applications. CLI for building native desktop apps with the **Nano Framework** SolidJS frontends + Rust backends. **Major update: v2.0.0** adds an IPC system inspired by Tauri. Call Rust backend functions from the frontend using `invoke()`. > ⚠️ **License notice (short):** This repository is released under **CC BY-ND 4.0**. You may copy and redistribute **unmodified** material with attribution. **You may NOT distribute modified versions.** If you want to modify or redistribute derivatives, you must obtain prior written permission: `uziidevelopment@gmail.com`. This is **not** an OSI-approved open-source license expect less community contribution out of the box. --- ## Highlights — v2.0.0 * New IPC system call registered Rust functions via `invoke()` (see `src/api/invoke.ts`) * Minimal frontend boilerplate for backend RPC * Faster developer experience for SolidJS + Rust native apps --- ## Quick start ```bash # With npm npm create @isthatuzii/nano-app@latest my-app # With yarn yarn create @isthatuzii/nano-app my-app # With pnpm pnpm create @isthatuzii/nano-app my-app # With bun bun create @isthatuzii/nano-app my-app # Direct npx npx @isthatuzii/create-nano-app@latest my-app ``` --- ## Example — invoking backend functions Import and call `invoke` from your frontend: ```ts import api, { invoke } from "./api/api"; // Call any registered function in the Rust backend const result = await invoke("function_name", { arg1: value1, arg2: value2 }); ``` > Registered backend functions live in `src-nano/nano_registery.rs`. --- ## Features * Native desktop applications with a Rust backend * Hot reload (Vite + `cargo-watch`) * Portable single-executable builds with embedded assets * Modern JavaScript (ES2020+) + Vite build system * VS Code workspace + recommended extensions (Rust, Solid tooling) * Optional HTTP API with Axum * Post-creation health checks and diagnostics --- ## Supported UI frameworks * **SolidJS** (default) --- ## Project layout (example) ``` my-app/ ├── src-nano/ # Rust backend ├── main.rs ├── nano_registery.rs # IPC / RPC registry └── modules/ ├── src/ # Frontend source ├── src/api/ # frontend invoke/api helpers ├── nano.config.json ├── Cargo.toml └── package.json ``` --- ## Development commands ```bash # start development with hot reload npm run nano:hot # build and run locally npm run nano # produce portable release npm run nano:release ``` --- ## Requirements * Rust (install via [https://rustup.rs](https://rustup.rs)) latest stable recommended * Node.js 18+ * One of: npm / yarn / pnpm / bun --- ## Documentation & Support * Framework docs: [https://nano-framework.dev](https://nano-framework.dev) * Issues & bug reports: [https://github.com/imperium-industries/create-nano-app/issues](https://github.com/imperium-industries/create-nano-app/issues) * Contact / permission requests: `uziidevelopment@gmail.com` * Company: [https://imperiuminteractive.com](https://imperiuminteractive.com) --- ## Contributing / Modifications **Short and blunt:** this project is intentionally locked down by license. You may **use** and **redistribute unmodified copies** provided you give clear attribution to Imperium Industries / Microcode Labs / Imperium Interactive and include this README and license. **You may not distribute modified or derivative versions** under CC BY-ND 4.0. If you want to contribute changes or redistribute a modified version, **do not open a PR** expecting it to be merged without prior agreement first **email `uziidevelopment@gmail.com`** to request written permission and discuss contribution terms. If you prefer an open, collaborative community workflow, tell us we can discuss switching to a different license (e.g., permissive + CLA), but that is a policy choice intentionally left to the maintainers. --- ## Changelog (short) * **v2.0.0** IPC system + frontend `invoke()` RPC; reduced frontend boilerplate. --- ## Credits Built by Imperium Interactive powered by Microcode Labs Developed by `uziidevelopment@gmail.com` under Imperium Industries’ open-source tooling subsidiary, Microcode Labs. --- ## LICENSE This project uses **Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0)**. For the canonical license text and legal details, see the included `LICENSE` file or visit: [https://creativecommons.org/licenses/by-nd/4.0/](https://creativecommons.org/licenses/by-nd/4.0/)