Skip to content

Commit 833b07f

Browse files
Jiffshot: screen capture tool and image/video editor for Windows
Screen capture, screen recording and an image/video editor for Windows, written entirely in Rust on Rustolonia (Avalonia). It builds with plain Cargo against the Rustolonia v12.1.2 release, whose prebuilt host is downloaded and checked at build time. Moved from Rustolonia's apps/jiffshot. CI builds win-x64 (with the tests) and cross-builds win-arm64, and uploads both as portable zips. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
0 parents  commit 833b07f

108 files changed

Lines changed: 35993 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.cargo/config.toml‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[target.x86_64-pc-windows-msvc]
2+
rustflags = ["-C", "target-feature=+crt-static"]
3+
4+
[target.aarch64-pc-windows-msvc]
5+
rustflags = ["-C", "target-feature=+crt-static"]

‎.gitattributes‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
* text=auto
2+
*.rs text
3+
*.md text
4+
*.toml text
5+
*.yml text
6+
*.ico binary
7+
*.png binary

‎.github/workflows/ci.yml‎

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [master]
6+
pull_request:
7+
workflow_dispatch:
8+
9+
permissions:
10+
contents: read
11+
12+
concurrency:
13+
group: ci-${{ github.ref }}
14+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
15+
16+
jobs:
17+
build:
18+
name: ${{ matrix.rid }}
19+
# win-arm64 is cross-built on x64 (Visual Studio's ARM64 tools are on the
20+
# image), so it is built but not run.
21+
runs-on: windows-latest
22+
strategy:
23+
fail-fast: false
24+
matrix:
25+
include:
26+
- rid: win-x64
27+
target: x86_64-pc-windows-msvc
28+
test: true
29+
- rid: win-arm64
30+
target: aarch64-pc-windows-msvc
31+
test: false
32+
env:
33+
CARGO_TERM_COLOR: always
34+
steps:
35+
- uses: actions/checkout@v4
36+
37+
- name: Set up Rust
38+
shell: pwsh
39+
run: |
40+
# rust-toolchain.toml selects the channel; rustup installs it here.
41+
rustup show
42+
rustup target add ${{ matrix.target }}
43+
cargo --version
44+
rustc --version
45+
46+
- name: Cache Cargo and the Rustolonia host
47+
uses: actions/cache@v4
48+
with:
49+
path: |
50+
~/.cargo/registry/index
51+
~/.cargo/registry/cache
52+
~/.cargo/git/db
53+
~/AppData/Local/rustolonia/host
54+
target
55+
key: ${{ matrix.rid }}-${{ hashFiles('Cargo.lock', 'rust-toolchain.toml') }}
56+
restore-keys: ${{ matrix.rid }}-
57+
58+
- name: Build
59+
run: cargo build --release --locked -p jiffshot --target ${{ matrix.target }}
60+
61+
- name: Test
62+
if: matrix.test
63+
run: cargo test --release --locked --workspace --target ${{ matrix.target }}
64+
65+
- name: Package
66+
shell: pwsh
67+
run: |
68+
# The build script puts the Rustolonia host next to jiffshot.exe.
69+
$out = "target/${{ matrix.target }}/release"
70+
$dir = "jiffshot-${{ matrix.rid }}"
71+
New-Item -ItemType Directory -Path $dir | Out-Null
72+
Copy-Item "$out/jiffshot.exe", "$out/*.dll", "app/README-portable.txt" -Destination $dir
73+
Get-ChildItem $dir | Format-Table Name, Length
74+
75+
- uses: actions/upload-artifact@v4
76+
with:
77+
name: jiffshot-${{ matrix.rid }}
78+
path: jiffshot-${{ matrix.rid }}
79+
if-no-files-found: error

‎.gitignore‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Rust
2+
/target/

0 commit comments

Comments
 (0)