Files
Marcos Paulo bc0c3c1a1b
release / test (push) Has been cancelled
release / windows (push) Has been cancelled
release / macos (push) Has been cancelled
release / linux (push) Has been cancelled
release / publish (push) Has been cancelled
chore(release): 0.9.1
2026-10-29 14:37:34 -03:00

118 lines
4.3 KiB
TOML

[package]
name = "papercraft"
version = "0.9.1"
edition = "2024"
rust-version = "1.95"
description = "A native infinite-canvas app for planning, working and sketching"
license = "MIT OR Apache-2.0"
[lib]
name = "papercraft"
path = "src/lib.rs"
[[bin]]
name = "papercraft"
path = "src/main.rs"
[[bin]]
name = "papercraft-mcp"
path = "src/bin/papercraft-mcp.rs"
[[bin]]
name = "papercraft-cli"
path = "src/bin/papercraft-cli.rs"
[[bin]]
name = "papercraft-relay"
path = "src/bin/papercraft-relay.rs"
[dependencies]
egui = "0.36"
egui-wgpu = "0.36"
wgpu = "30"
lyon = "1"
ttf-parser = "0.25"
serde = { version = "1", features = ["derive"] }
serde_json = { version = "1", features = ["float_roundtrip"] }
semver = "1"
image = { version = "0.25", default-features = false, features = ["png", "jpeg", "gif", "webp"] }
pollster = "0.4"
web-time = "1"
bytemuck = { version = "1", features = ["derive"] }
log = "0.4"
env_logger = "0.11"
rfd = "0.17"
fastrand = "2"
dirs = "6"
craft-ui = { version = "0.1.0", git = "https://git.marcospaulo.dev.br/masi/craft-libs", rev = "9c470aa935c4ce48f2ba4f0a17f9410c0c8660fb" }
i_overlay = "9.0.1"
miniz_oxide = "0.9.1"
usvg = "0.48"
resvg = "0.48"
tokio = { version = "1", features = ["sync"] }
base64 = "0.23"
[build-dependencies]
winresource = "0.1"
[profile.release]
debug = false
# Browser bundle only (`web/build.sh`): size over compile time. Native release is untouched.
[profile.web]
inherits = "release"
lto = true
codegen-units = 1
panic = "abort"
opt-level = "z"
[profile.dev.package."*"]
opt-level = 2
[dev-dependencies]
rmcp = { version = "3.5.1", default-features = false, features = ["transport-child-process"] }
reqwest = { version = "0.13", default-features = false }
# The relay test drives a fake tab over a real WebSocket; same version axum's `ws` uses.
tokio-tungstenite = "0.29"
[target.'cfg(target_os = "macos")'.dependencies]
muda = { version = "0.21", default-features = false }
objc2 = "0.6"
objc2-app-kit = "0.3"
objc2-foundation = "0.3"
raw-window-handle = "0.6"
# Native only: the OS clipboard and the MCP HTTP server do not exist in the browser.
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
egui-winit = "0.36"
winit = "0.30"
arboard = { version = "3.6.1", features = ["image-data"] }
rmcp = { version = "3.5.1", default-features = false, features = ["server", "base64", "transport-streamable-http-server", "transport-io", "client", "transport-streamable-http-client-reqwest"] }
tokio = { version = "1", features = ["rt-multi-thread", "net", "sync", "macros", "time", "io-std", "fs"] }
axum = { version = "0.8", default-features = false, features = ["http1", "tokio", "ws", "json", "query"] }
tokio-util = "0.7"
# Shared-project sync; the system TLS stack so https servers work without bundling one.
reqwest = { version = "0.13", default-features = false, features = ["native-tls"] }
# Anthropic API key in the OS keychain (chat API backend). Linux uses the Secret Service (persistent; keyutils is not).
# libc: SIGINT to the spawned chat CLIs.
keyring = { version = "3", default-features = false, features = ["apple-native", "windows-native", "sync-secret-service", "crypto-rust"] }
libc = "0.2"
# Pages and versions on disk are zstd-compressed JSON (`project::packed`).
zstd = "0.13"
# Browser build (`src/web.rs`): canvas + WebGPU/WebGL surface, DOM events instead of winit.
# Process RAM and CPU readings for the performance overlay (`ui::perf`).
[target.'cfg(windows)'.dependencies]
windows-sys = { version = "0.61", features = ["Win32_Foundation", "Win32_System_ProcessStatus", "Win32_System_Threading"] }
[target.'cfg(target_arch = "wasm32")'.dependencies]
wgpu = { version = "30", features = ["webgl"] }
wasm-bindgen = "0.2"
wasm-bindgen-futures = "0.4"
js-sys = "0.3"
console_error_panic_hook = "0.1"
console_log = "1"
# zstd without C, for the browser: reads the packed files native builds write.
ruzstd = "0.8"
web-sys = { version = "0.3", features = ["Window", "Document", "Element", "HtmlElement", "HtmlCanvasElement", "KeyboardEvent", "PointerEvent", "WheelEvent", "ClipboardEvent", "DataTransfer", "MediaQueryList", "Location", "Performance", "Navigator", "Clipboard", "CssStyleDeclaration", "console", "WebSocket", "MessageEvent", "CloseEvent", "ErrorEvent", "Storage", "Crypto", "DragEvent", "FileList", "File", "Blob", "Request", "RequestInit", "Response"] }