Rust implementation of NextGraph, a Decentralized and local-first web 3.0 ecosystem https://nextgraph.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
nextgraph-rs/app/nextgraph
Niko PLP 1039c2694d Svelte 5 4 days ago
..
.vscode moving things around 5 days ago
src Svelte 5 4 days ago
src-tauri size of window 4 days ago
.gitignore moving things around 5 days ago
.prettierignore adding svelte 4 days ago
.prettierrc Svelte 5 4 days ago
README.md more getting started for tauri app 4 days ago
app-icon.png moving things around 5 days ago
index.html Svelte 5 4 days ago
package-lock.json adding svelte 4 days ago
package.json Svelte 5 4 days ago
svelte.config.js Svelte 5 4 days ago
tailwind.config.js Svelte 5 4 days ago
tsconfig.json adding svelte 4 days ago
vite.config.ts Svelte 5 4 days ago

README.md

NextGraph apps (Linux, MacOS, Windows, Android, iOS, web)

All the apps are based on Svelte and share the same code.

The native apps are using the Tauri framework with an embedded WebView to render the Svelte app.

Install

npm install -g pnpm
pnpm install
pnpm install @tauri-apps/cli

VS Codium + Svelte + Tauri + rust-analyzer.

Web

prerequisites: compile the local SDK

cd ../ng-sdk-js
cargo install cargo-run-script
cargo run-script app
cd ../ng-app

Dev

First time:

pnpm -C ../helpers/net-auth builddev
pnpm -C ../helpers/net-bootstrap builddev

Then run your local front-end:

pnpm webdev
// then open http://localhost:1421/

Prod

this will produce a single html file embedding all the resources. this is what you need for production

pnpm webfilebuild
// single file is available in dist-file/index.html

alternatively, to obtain a regular dist folder with all resources in separate files (we dont use it anymore):

pnpm webbuild
// then the application is available in dist-web folder
// can be served with:
cd dist-web ; python3 -m http.server

Desktop

cargo install tauri-cli --version "^2.0.0" --locked

Install all prerequisites for your dev platform.

Add this line to your environment variables

export RANLIB="$NDK_HOME/toolchains/llvm/prebuilt/$(ls -1 $NDK_HOME/toolchains/llvm/prebuilt/)/bin/llvm-ranlib"

to run the dev env :

## on macos
cargo tauri dev --no-watch --target x86_64-apple-darwin
## on linux
cargo tauri dev --no-watch --target x86_64-unknown-linux-gnu
## on win
cargo tauri dev --no-watch --target x86_64-pc-windows-msvc

to build the production app installer :

MacOs (10.14+)

cargo tauri build
// the installer is then available in target/x86_64-apple-darwin/release/bundle/dmg/NextGraph_0.1.2_x64.dmg
// or if you just want the app, it is at target/x86_64-apple-darwin/release/bundle/macos/NextGraph.app

Linux (Ubuntu 22.04)

cargo tauri build --target x86_64-unknown-linux-gnu

Windows (7+)

cargo tauri build --target x86_64-pc-windows-msvc

Android

rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android

Before you can generate the APK, you will need to configure Android Studio with your Signing keys.

to launch the dev app :

cargo tauri android dev

to build the production app :

cargo tauri android build

to debug the Svelte app, use Chrome :

iOS

Disclaimer: iOS hasn't been tested yet, for lack of suitable dev env (latest MacOS version needed).

First, make sure Xcode is properly installed. then :

rustup target add aarch64-apple-ios x86_64-apple-ios aarch64-apple-ios-sim

to launch the dev app :

cargo tauri ios dev

to build the production app :

cargo tauri ios build