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/ng-app
Niko PLP 8265ff2dc4 fix mobile homepage header 1 year ago
..
.vscode ng-app uses the sdk 1 year ago
src fix mobile homepage header 1 year ago
src-tauri full-layout with mobile bottom bar 1 year ago
.gitignore rename some pazzle categories and implement logout 1 year ago
README.md readme 1 year ago
index-native.html automatic including of sdk in web app 1 year ago
index-web.html automatic including of sdk in web app 1 year ago
package.json upgrade flowbite, full-layout 1 year ago
postcss.config.cjs ng-app uses the sdk 1 year ago
prepare-app-file.cjs serving app and .ng_bootstrap 1 year ago
svelte.config.js ng-app uses the sdk 1 year ago
tailwind.config.cjs full-layout with mobile bottom bar 1 year ago
tsconfig.json ng-app uses the sdk 1 year ago
tsconfig.node.json ng-app uses the sdk 1 year ago
vite.config.ts reordering vite plugin 1 year ago

README.md

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

NextGraph native apps use the Tauri framework.

All the native apps are using an embedded WebView that renders a Svelte app.

Install

npm install -g pnpm
pnpm install

VS Code + Svelte + Tauri + rust-analyzer.

Web

prerequisites: compile the local SDK

cd ../ng-sdk-js
wasm-pack build --target bundler
cd ../ng-app

Dev

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-alpha.11"

Install all prerequisites for your dev platform.

to run the dev env :

## on macos
cargo tauri dev --no-watch
## 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.0_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

Until I find out how to do this properly, if you are compiling the android app from a macos station, you need to override an env var. this is due to reqwest needing SSL support, and on linux and android it compiles it from source. apparently the compiler (cc-rs) doesn't know that when cross compiling to android targets, the tool ranlib is called llvm-ranlib (and not [target]-ranlib)

export RANLIB=/Users/[user]/Library/Android/sdk/ndk/[yourNDKversion]/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ranlib

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