Skip to content

Commit 5ea92ea

Browse files
CopilotSteake
andcommitted
Add cross-platform native wallet GUI using Slint
Co-authored-by: Steake <530040+Steake@users.noreply.github.com>
1 parent e4fed65 commit 5ea92ea

6 files changed

Lines changed: 1518 additions & 1 deletion

File tree

.github/workflows/release.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,14 @@ jobs:
5151
restore-keys: |
5252
${{ runner.os }}-${{ matrix.target }}-cargo-
5353
54+
- name: Install Linux dependencies
55+
if: runner.os == 'Linux'
56+
run: |
57+
sudo apt-get update
58+
sudo apt-get install -y libfontconfig1-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev
59+
5460
- name: Build release binaries
55-
run: cargo build --release --target ${{ matrix.target }} -p bitcell-node -p bitcell-admin -p bitcell-wallet
61+
run: cargo build --release --target ${{ matrix.target }} -p bitcell-node -p bitcell-admin -p bitcell-wallet -p bitcell-wallet-gui
5662

5763
- name: Create artifact directory
5864
shell: bash
@@ -65,6 +71,7 @@ jobs:
6571
cp target/${{ matrix.target }}/release/bitcell-node artifacts/
6672
cp target/${{ matrix.target }}/release/bitcell-admin artifacts/
6773
cp target/${{ matrix.target }}/release/bitcell-wallet artifacts/
74+
cp target/${{ matrix.target }}/release/bitcell-wallet-gui artifacts/
6875
6976
- name: Copy binaries (Windows)
7077
if: runner.os == 'Windows'
@@ -73,6 +80,7 @@ jobs:
7380
cp target/${{ matrix.target }}/release/bitcell-node.exe artifacts/
7481
cp target/${{ matrix.target }}/release/bitcell-admin.exe artifacts/
7582
cp target/${{ matrix.target }}/release/bitcell-wallet.exe artifacts/
83+
cp target/${{ matrix.target }}/release/bitcell-wallet-gui.exe artifacts/
7684
7785
- name: Create archive (Unix)
7886
if: runner.os != 'Windows'

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ members = [
1313
"crates/bitcell-admin",
1414
"crates/bitcell-simulation",
1515
"crates/bitcell-wallet",
16+
"crates/bitcell-wallet-gui",
1617
]
1718
resolver = "2"
1819

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
[package]
2+
name = "bitcell-wallet-gui"
3+
version.workspace = true
4+
authors.workspace = true
5+
edition.workspace = true
6+
rust-version.workspace = true
7+
license.workspace = true
8+
repository.workspace = true
9+
description = "Cross-platform native GUI for BitCell wallet using Slint"
10+
11+
[[bin]]
12+
name = "bitcell-wallet-gui"
13+
path = "src/main.rs"
14+
15+
[dependencies]
16+
bitcell-wallet = { path = "../bitcell-wallet" }
17+
bitcell-crypto = { path = "../bitcell-crypto" }
18+
19+
# Slint UI framework - native rendering, no WebView
20+
slint = "1.9"
21+
22+
# Serialization
23+
serde.workspace = true
24+
serde_json = "1.0"
25+
26+
# Error handling
27+
thiserror.workspace = true
28+
anyhow.workspace = true
29+
30+
[build-dependencies]
31+
slint-build = "1.9"
32+
33+
[features]
34+
default = []

crates/bitcell-wallet-gui/build.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
fn main() {
2+
slint_build::compile("ui/main.slint").expect("Slint compile failed");
3+
}

0 commit comments

Comments
 (0)