diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..13518e8 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Nicola Spadari + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md index 390157b..ca41d9f 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,78 @@

- logo + logo

NUXTOR


-

-**⚠️ `nuxtor` is still a WIP ⚠️** +A spiritual successor of ViTauri made with Nuxt 3 and Tauri 2 +
+Build super fast desktop applications!

-## Usage +**⚠️ `nuxtor` is still a WIP ⚠️** -Clone to local: -```sh -$ npx degit NicolaSpadari/nuxtor -``` + -Install dependencies: -```sh -$ pnpm install -``` +
+ +
-Run project: -```sh -$ pnpm run dev -``` +

+ +## Technologies run-down + +- Nuxt 3 +- Tauri 2 +- UnoCSS +- Typescript +- ESLint +- Auto imports (for Tauri api too!) + +## Functionalities + +- Run shell commands from the app +- Send custom notifications to the client +- Display OS related informations +- Support catch-all route + +## Setup + + - This project enforces [pnpm](https://pnpm.io). In order to use another package manager you need to update `package.json` and `tauri.config.js` + - Before running this app, you need to configure your environment with Rust. Take a look at the [Tauri docs](https://v2.tauri.app/start/prerequisites). + - The frontend runs on the usual port `3000` of Nuxt, the Tauri server uses the port `3001`. This settings are customizable in the `nuxt.config.ts` and `tauri.config.js`. + - Once ready, follow these commands: + + ```sh + # use this template + $ npx degit NicolaSpadari/nuxtor my-nuxtor-app + + # go into the folder + $ cd my-nuxtor-app + + # install dependencies + $ pnpm install + + # start the project + $ pnpm run tauri:dev + ``` + + This will run the Nuxt frontend and will launch the Tauri window. + +## Build + + ```sh + $ pnpm run tauri:build + ``` + +This command will generate the Nuxt static output and bundle the project under `src-tauri/target`. + +## Notes + +- As the documentation shows, the Nuxt SSr must be disabled in order for Tauri to act as the backend. Still, all Nuxt capabilities are still here. +- Tauri v2 is still in beta. Some things might not work, or present some bugs. +- Tauri v2 brings some big refactors, such as packages names and permission management. New permissions have to be granted under `src-tauri/capabilities/main.json` +- Tauri js functions are auto imported as-is with the help of a custom module. If another Tauri plugin is added, then the module has to be updated to support auto imports under `src/modules/tauri.ts` + +## License + +MIT License © 2024-PRESENT [NicolaSpadari](https://github.com/NicolaSpadari) diff --git a/package.json b/package.json index 7c36d7d..91d671c 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "packageManager": "pnpm@9.3.0", "description": "Starter template for Nuxt 3 with Tauri", "author": "Nicola Spadari", + "license": "MIT", "engines": { "node": ">=20" }, diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000..490b024 Binary files /dev/null and b/screenshot.png differ