Identity Wallet for people to manage Decentralized Identities and Verifiable Credentials.
This app is built with Tauri 2.0. It uses Rust in the backend and SvelteKit, Tailwind CSS, and Melt UI in the frontend.
This repository uses pnpm workspaces:
Path | Description |
---|---|
./ |
Project root with Prettier configuration. |
./unime |
pnpm workspace with UniMe frontend. |
./unime/src-tauri |
Tauri Rust app (not a pnpm workspace). |
./identity-wallet |
Rust package with UniMe backend (not a pnpm workspace). |
Get up and running with these steps:
Copy the file .env.example
to .env
and set the values accordingly.
pnpm i
cd unime/src-tauri
cargo tauri icon
You can run the following commands from the project root:
# Desktop
pnpm tauri dev
# Android
pnpm tauri android init
pnpm tauri android dev
# iOS
pnpm tauri ios init
pnpm tauri ios dev
Note
Before committing, please make sure the code is formatted, linted, and passes all tests.
Run the following commands from the project root:
pnpm format
pnpm lint
pnpm test
Run these commands from ./unime/src-tauri
:
cargo fmt
cargo clippy
cargo test
Run these commands from ./identity-wallet
:
cargo fmt
cargo clippy
cargo test
Recommended extensions are listed in .vscode/extensions.json
.
If you have issues with cargo tauri build
run the following command.
# Linux, macOS
rm -rf ~/.cargo/git/checkouts/*
# Windows
rd /s /q "%USERPROFILE%\.cargo\git\checkouts"
You can simulate safe area insets during development by overriding CSS variables --safe-area-inset-top
and --safe-area-inset-button
in unime/src/app.css
. You can add styling to the safe area insets by setting PUBLIC_STYLE_SAFE_AREA_INSETS=true
in your .env
.
- Search the entire project for the current version string (such as
0.6.2
) and replace them with the new version string. Be cautious not to replace versions of any other dependencies (inCargo.toml
,Cargo.lock
,package.json
,package-lock.json
). - Run the script in
unime/src-tauri/gen-static/apply.sh
which copies over the changed files into the (untracked) generated folders for Android and iOS. - Inside
unime/src-tauri
runcargo tauri icon
. - Run
npm run tauri ios build
andnpm run tauri android build
to build the apps. The iOS build (.ipa
) will be inunime/src-tauri/gen/apple/build/arm64
and the Android builds (.apk
and.aab
) will be inunime/src-tauri/gen/android/app/build/outputs/
.