mirror of
https://github.com/storytold/artcraft.git
synced 2026-10-20 17:02:53 -04:00
A rewrite of the desktop app without Tauri or a webview, starting with Create Image and Create Video. It reuses the Tauri-free API crates (artcraft_client, artcraft_api_defs, tokens, enums) and is styled after the brutalist artcraft-webapp. - Generation goes through OmniGen (models, cost, generate), so model options come from the server, as in the webapp. - Recreates the prompt box: auto-grow, focus mode, length limit, enter-to-generate, @-mentions, reference deck and keyframes, drag & drop, image paste, library picker, model families, every picker, and the live credit cost. - Generation feed (pending, failed, finished, library paging), lightbox, sign-in (existing Tauri login, browser code, password) and settings. - Uses the glow renderer: wgpu-hal conflicts with the windows crates this workspace pins for Tauri. - Lists the bundled OFL fonts in NOTICE. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
44 lines
1.4 KiB
TOML
44 lines
1.4 KiB
TOML
[package]
|
|
name = "artcraft_native"
|
|
description = "ArtCraft desktop app in pure Rust: an egui UI over the ArtCraft API client (no Tauri, no webview)"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
publish = false
|
|
|
|
[[bin]]
|
|
name = "artcraft-native"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
# Internal (Tauri-free) API crates shared with the Tauri app.
|
|
artcraft_api_defs.workspace = true
|
|
artcraft_client.workspace = true
|
|
tokens.workspace = true
|
|
|
|
# External
|
|
anyhow.workspace = true
|
|
cookie.workspace = true
|
|
chrono.workspace = true
|
|
directories = "6.0.0"
|
|
eframe = { version = "0.36", default-features = false, features = ["default_fonts", "glow", "accesskit", "wayland", "x11", "persistence", "links"] }
|
|
egui = "0.36"
|
|
enums.workspace = true
|
|
egui_extras = { version = "0.36", default-features = false, features = ["image", "svg"] }
|
|
env_logger.workspace = true
|
|
image = { version = "0.25", default-features = false, features = ["png", "jpeg", "webp", "gif"] }
|
|
log.workspace = true
|
|
open = "5"
|
|
reqwest = { workspace = true, features = ["multipart"] }
|
|
resvg = "0.45"
|
|
rfd = "0.16"
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
tokio = { workspace = true, features = ["rt-multi-thread", "sync", "time", "fs"] }
|
|
uuid = { workspace = true, features = ["v4"] }
|
|
|
|
# Pasting images from the clipboard (egui's own clipboard support is text only).
|
|
arboard = { version = "3", default-features = false, features = ["image-data"] }
|
|
|
|
[dev-dependencies]
|
|
egui_kittest = "0.36"
|