Reorganize cargo dependencies and upgrade most of them (#1815)

* Reorganize cargo dependencies and upgrade most

* cargo update

* Attempt 2

* Polishing changes

* Comment out specta typescript flag-dependent code

* Fix test
This commit is contained in:
Keavon Chambers 2024-07-09 04:08:28 -07:00 committed by GitHub
parent 97616e8019
commit f7ada701e5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
30 changed files with 1042 additions and 974 deletions

1359
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -22,83 +22,89 @@ members = [
"libraries/raw-rs/tag-derive", "libraries/raw-rs/tag-derive",
"website/other/bezier-rs-demos/wasm", "website/other/bezier-rs-demos/wasm",
] ]
resolver = "2"
exclude = ["node-graph/gpu-compiler"] exclude = ["node-graph/gpu-compiler"]
resolver = "2"
[workspace.dependencies] [workspace.dependencies]
specta = { git = "https://github.com/oscartbeaumont/specta.git", features = [ # Local dependencies
"glam",
"typescript",
] }
rustc-hash = "1.1.0"
# wasm-bindgen upgrades may break various things so we pin the version
wasm-bindgen = "=0.2.91"
dyn-any = { path = "libraries/dyn-any", features = ["derive", "glam"] } dyn-any = { path = "libraries/dyn-any", features = ["derive", "glam"] }
graphene-core = { path = "node-graph/gcore" } graphene-core = { path = "node-graph/gcore" }
graph-craft = { path = "node-graph/graph-craft", features = ["serde"] } graph-craft = { path = "node-graph/graph-craft", features = ["serde"] }
spirv-std = { git = "https://github.com/EmbarkStudios/rust-gpu.git" } bezier-rs = { path = "libraries/bezier-rs", features = ["dyn-any"] }
node-macro = { path = "node-graph/node-macro" }
# Workspace dependencies
rustc-hash = "2.0"
bytemuck = { version = "1.13", features = ["derive"] } bytemuck = { version = "1.13", features = ["derive"] }
async-trait = { version = "0.1" } async-trait = "0.1"
serde = { version = "1.0", features = ["derive", "rc"] } serde = { version = "1.0", features = ["derive", "rc"] }
serde_json = "1.0" serde_json = "1.0"
reqwest = { version = "0.11", features = ["rustls", "rustls-tls", "json"] } serde-wasm-bindgen = "0.6"
reqwest = { version = "0.12", features = ["blocking", "rustls-tls", "json"] }
futures = "0.3" futures = "0.3"
log = { version = "0.4" } env_logger = "0.11"
log = "0.4"
bitflags = { version = "2.4", features = ["serde"] } bitflags = { version = "2.4", features = ["serde"] }
derivative = "2.2.0" derivative = "2.2"
tempfile = "3" tempfile = "3.6"
thiserror = "1.0" thiserror = "1.0"
anyhow = "1.0.66" anyhow = "1.0"
proc-macro2 = "1" proc-macro2 = "1"
syn = { version = "2.0", default-features = false, features = ["full", "derive"] }
quote = "1.0" quote = "1.0"
axum = "0.6" axum = "0.7"
chrono = "^0.4.23" chrono = "0.4"
ron = "0.8" ron = "0.8"
fastnoise-lite = "1.1.0" fastnoise-lite = "1.1"
spirv-std = { git = "https://github.com/EmbarkStudios/rust-gpu.git" }
wgpu-types = "0.17" wgpu-types = "0.17"
wgpu = "0.19" wgpu = "0.19"
wasm-bindgen-futures = { version = "0.4.36" } once_cell = "1.13" # Remove when `core::cell::LazyCell` (<https://doc.rust-lang.org/core/cell/struct.LazyCell.html>) is stabilized in Rust 1.80 and we bump our MSRV
wasm-bindgen = "=0.2.92" # wasm-bindgen upgrades may break various things so we pin the version
wasm-bindgen-futures = "0.4"
js-sys = "=0.3.69"
web-sys = "=0.3.69"
winit = "0.29" winit = "0.29"
url = "2.4.0" url = "2.5"
tokio = { version = "1.29", features = ["fs", "io-std"] } tokio = { version = "1.29", features = ["fs", "io-std"] }
vello = { version = "0.1.0" } vello = "0.1"
resvg = { version = "0.39" } resvg = "0.39"
rand = { version = "0.8.5", default-features = false } usvg = "0.39"
rand_chacha = { version = "0.3.1" } rand = { version = "0.8", default-features = false }
bezier-rs = { path = "libraries/bezier-rs", features = ["dyn-any"] } rand_chacha = "0.3"
glam = { version = "0.25", default-features = false, features = ["serde"] }
base64 = "0.22"
image = { version = "0.25", default-features = false, features = ["png"] }
rustybuzz = "0.17"
meval = "0.2"
spirv = "0.3"
fern = { version = "0.6", features = ["colored"] }
num_enum = "0.7"
num-derive = "0.4"
num-traits = { version = "0.2", default-features = false, features = ["i128"] }
specta = { git = "https://github.com/oscartbeaumont/specta.git", features = [
"glam",
# "typescript",
] }
syn = { version = "2.0", default-features = false, features = [
"full",
"derive",
] }
kurbo = { git = "https://github.com/linebender/kurbo.git", features = [ kurbo = { git = "https://github.com/linebender/kurbo.git", features = [
"serde", "serde",
] } ] }
glam = { version = "0.25", default-features = false, features = ["serde"] }
node-macro = { path = "node-graph/node-macro" }
base64 = { version = "0.21" }
image = { version = "0.24", default-features = false, features = ["png"] }
rustybuzz = { version = "0.10.0" }
num-derive = { version = "0.4" }
num-traits = { version = "0.2.15", default-features = false, features = [
"i128",
] }
js-sys = { version = "=0.3.67" }
web-sys = { version = "=0.3.67" }
usvg = "0.39"
spirv = "0.3"
fern = { version = "0.6", features = ["colored"] }
[profile.dev.package.graphite-editor] [profile.dev.package.graphite-editor]
opt-level = 1 opt-level = 1
# This is a mitigation for https://github.com/rustwasm/wasm-pack/issues/981
# Which is needed because the node_registry function is too large
[profile.dev.package.interpreted-executor]
opt-level = 1
[profile.dev.package.graphene-core] [profile.dev.package.graphene-core]
opt-level = 1 opt-level = 1
[profile.dev.package.graphene-std] [profile.dev.package.graphene-std]
opt-level = 1 opt-level = 1
[profile.dev.package.interpreted-executor]
opt-level = 1 # This is a mitigation for https://github.com/rustwasm/wasm-pack/issues/981 which is needed because the node_registry function is too large
[profile.dev.package.autoquant] [profile.dev.package.autoquant]
opt-level = 3 opt-level = 3

View File

@ -2,7 +2,7 @@
name = "graphite-editor" name = "graphite-editor"
publish = false publish = false
version = "0.0.0" version = "0.0.0"
rust-version = "1.66.0" rust-version = "1.70.0"
authors = ["Graphite Authors <contact@graphite.rs>"] authors = ["Graphite Authors <contact@graphite.rs>"]
edition = "2021" edition = "2021"
readme = "../README.md" readme = "../README.md"
@ -12,6 +12,7 @@ license = "Apache-2.0"
[features] [features]
default = ["wasm"] default = ["wasm"]
wasm = ["wasm-bindgen", "graphene-std/wasm", "wasm-bindgen-futures"]
gpu = [ gpu = [
"interpreted-executor/gpu", "interpreted-executor/gpu",
"graphene-std/gpu", "graphene-std/gpu",
@ -23,34 +24,31 @@ quantization = [
"graphene-std/quantization", "graphene-std/quantization",
"interpreted-executor/quantization", "interpreted-executor/quantization",
] ]
wasm = ["wasm-bindgen", "graphene-std/wasm", "wasm-bindgen-futures"]
[dependencies] [dependencies]
js-sys = "0.3.67" # Local dependencies
graphite-proc-macros = { path = "../proc-macros" }
graph-craft = { path = "../node-graph/graph-craft" }
interpreted-executor = { path = "../node-graph/interpreted-executor" }
graphene-core = { path = "../node-graph/gcore" }
graphene-std = { path = "../node-graph/gstd", features = ["serde"] }
# Workspace dependencies
js-sys = { workspace = true }
log = { workspace = true } log = { workspace = true }
bitflags = { workspace = true } bitflags = { workspace = true }
thiserror = { workspace = true } thiserror = { workspace = true }
serde = { workspace = true } serde = { workspace = true }
serde_json = { workspace = true } serde_json = { workspace = true }
graphite-proc-macros = { path = "../proc-macros" }
bezier-rs = { workspace = true } bezier-rs = { workspace = true }
glam = { workspace = true, features = ["serde", "debug-glam-assert"] } glam = { workspace = true, features = ["serde", "debug-glam-assert"] }
derivative = { workspace = true } derivative = { workspace = true }
specta.workspace = true specta.workspace = true
image = { workspace = true, features = ["bmp", "png"] } image = { workspace = true, features = ["bmp", "png"] }
graph-craft = { path = "../node-graph/graph-craft" }
wgpu-executor = { path = "../node-graph/wgpu-executor", optional = true }
gpu-executor = { path = "../node-graph/gpu-executor", optional = true }
interpreted-executor = { path = "../node-graph/interpreted-executor" }
dyn-any = { workspace = true } dyn-any = { workspace = true }
graphene-core = { path = "../node-graph/gcore" } num_enum = { workspace = true }
graphene-std = { path = "../node-graph/gstd", features = ["serde"] }
num_enum = "0.6.1"
usvg = { workspace = true } usvg = { workspace = true }
wasm-bindgen = { workspace = true, optional = true } once_cell = { workspace = true }
wasm-bindgen-futures = { workspace = true, optional = true }
# Remove when `core::cell::LazyCell` is stabilized (<https://doc.rust-lang.org/core/cell/struct.LazyCell.html>)
once_cell = "1.13.0"
web-sys = { workspace = true, features = [ web-sys = { workspace = true, features = [
"Document", "Document",
"DomRect", "DomRect",
@ -60,9 +58,17 @@ web-sys = { workspace = true, features = [
"TextMetrics", "TextMetrics",
] } ] }
# Optional local dependencies
wgpu-executor = { path = "../node-graph/wgpu-executor", optional = true }
gpu-executor = { path = "../node-graph/gpu-executor", optional = true }
# Optional workspace dependencies
wasm-bindgen = { workspace = true, optional = true }
wasm-bindgen-futures = { workspace = true, optional = true }
[dev-dependencies] [dev-dependencies]
env_logger = "0.10" # Workspace dependencies
env_logger = { workspace = true }
futures = { workspace = true } futures = { workspace = true }
tokio = { workspace = true, features = ["rt", "macros"] } tokio = { workspace = true, features = ["rt", "macros"] }

View File

@ -4,29 +4,31 @@
#[ignore] #[ignore]
#[test] #[test]
fn generate_ts_types() { fn generate_ts_types() {
use crate::messages::prelude::FrontendMessage; // TODO: Un-comment this out when we figure out how to reenable the "typescript` Specta feature flag
use specta::ts::{export_named_datatype, BigIntExportBehavior, ExportConfig};
use specta::{NamedType, TypeMap};
use std::fs::File;
use std::io::Write;
let config = ExportConfig::new().bigint(BigIntExportBehavior::Number); // use crate::messages::prelude::FrontendMessage;
// use specta::ts::{export_named_datatype, BigIntExportBehavior, ExportConfig};
// use specta::{NamedType, TypeMap};
// use std::fs::File;
// use std::io::Write;
let mut type_map = TypeMap::default(); // let config = ExportConfig::new().bigint(BigIntExportBehavior::Number);
let datatype = FrontendMessage::definition_named_data_type(&mut type_map); // let mut type_map = TypeMap::default();
let mut export = String::new(); // let datatype = FrontendMessage::definition_named_data_type(&mut type_map);
export += &export_named_datatype(&config, &datatype, &type_map).unwrap(); // let mut export = String::new();
type_map // export += &export_named_datatype(&config, &datatype, &type_map).unwrap();
.iter()
.map(|(_, v)| v)
.flat_map(|v| export_named_datatype(&config, v, &type_map))
.for_each(|e| export += &format!("\n\n{e}"));
let mut file = File::create("../types.ts").unwrap(); // type_map
// .iter()
// .map(|(_, v)| v)
// .flat_map(|v| export_named_datatype(&config, v, &type_map))
// .for_each(|e| export += &format!("\n\n{e}"));
write!(file, "{export}").ok(); // let mut file = File::create("../types.ts").unwrap();
// write!(file, "{export}").ok();
} }

View File

@ -7,24 +7,26 @@ license = "Apache-2.0"
repository = "" repository = ""
default-run = "graphite-desktop" default-run = "graphite-desktop"
edition = "2021" edition = "2021"
rust-version = "1.66.0" rust-version = "1.70.0"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [features]
# by default Tauri runs in production mode
[build-dependencies] # when `tauri dev` runs it is executed with `cargo run --no-default-features` if `devPath` is an URL
tauri-build = { version = "1.2", features = [] } default = ["custom-protocol"]
# this feature is used for production builds where `devPath` points to the filesystem
# DO NOT remove this
custom-protocol = ["tauri/custom-protocol"]
gpu = ["graphite-editor/gpu"]
quantization = ["graphite-editor/quantization"]
[dependencies] [dependencies]
# Local dependencies
graphite-editor = { path = "../../editor" }
# Workspace dependencies
serde_json = { workspace = true } serde_json = { workspace = true }
serde = { workspace = true } serde = { workspace = true }
tauri = { version = "1.5", features = [
"api-all",
"devtools",
"linux-protocol-headers",
"wry",
] }
axum = { workspace = true } axum = { workspace = true }
graphite-editor = { path = "../../editor" }
chrono = { workspace = true } chrono = { workspace = true }
tokio = { workspace = true, features = ["macros", "rt-multi-thread"] } tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }
ron = { workspace = true } ron = { workspace = true }
@ -32,12 +34,14 @@ log = { workspace = true }
fern = { workspace = true } fern = { workspace = true }
futures = { workspace = true } futures = { workspace = true }
[features] # Required dependencies
gpu = ["graphite-editor/gpu"] tauri = { version = "1.5", features = [
quantization = ["graphite-editor/quantization"] "api-all",
# by default Tauri runs in production mode "devtools",
# when `tauri dev` runs it is executed with `cargo run --no-default-features` if `devPath` is an URL "linux-protocol-headers",
default = ["custom-protocol"] "wry",
# this feature is used for production builds where `devPath` points to the filesystem ] }
# DO NOT remove this
custom-protocol = ["tauri/custom-protocol"] [build-dependencies]
# Required dependencies
tauri-build = { version = "1.2", features = [] }

View File

@ -61,7 +61,8 @@ async fn main() {
// run it with hyper on localhost:3000 // run it with hyper on localhost:3000
tauri::async_runtime::spawn(async { tauri::async_runtime::spawn(async {
axum::Server::bind(&"0.0.0.0:3001".parse().unwrap()).serve(app.into_make_service()).await.unwrap(); let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap();
axum::serve(listener, app).await.unwrap();
}); });
tauri::Builder::default() tauri::Builder::default()

View File

@ -2,7 +2,7 @@
name = "graphite-wasm" name = "graphite-wasm"
publish = false publish = false
version = "0.0.0" version = "0.0.0"
rust-version = "1.66.0" rust-version = "1.70.0"
authors = ["Graphite Authors <contact@graphite.rs>"] authors = ["Graphite Authors <contact@graphite.rs>"]
edition = "2021" edition = "2021"
readme = "../../README.md" readme = "../../README.md"
@ -11,39 +11,42 @@ repository = "https://github.com/GraphiteEditor/Graphite"
license = "Apache-2.0" license = "Apache-2.0"
[features] [features]
tauri = ["ron"]
gpu = ["editor/gpu"]
default = ["gpu"] default = ["gpu"]
gpu = ["editor/gpu"]
tauri = ["ron"]
[lib] [lib]
crate-type = ["cdylib", "rlib"] crate-type = ["cdylib", "rlib"]
[dependencies] [dependencies]
# Local dependencies
editor = { path = "../../editor", package = "graphite-editor" } editor = { path = "../../editor", package = "graphite-editor" }
# Workspace dependencies
graph-craft = { workspace = true } graph-craft = { workspace = true }
log = { workspace = true } log = { workspace = true }
graphene-core = { workspace = true, features = ["std", "alloc"] } graphene-core = { workspace = true, features = ["std", "alloc"] }
serde = { workspace = true, features = ["derive"] } serde = { workspace = true, features = ["derive"] }
wasm-bindgen = { workspace = true } wasm-bindgen = { workspace = true }
serde-wasm-bindgen = "0.6" serde-wasm-bindgen = { workspace = true }
js-sys = { workspace = true } js-sys = { workspace = true }
wasm-bindgen-futures = { workspace = true } wasm-bindgen-futures = { workspace = true }
ron = { workspace = true, optional = true }
bezier-rs = { workspace = true } bezier-rs = { workspace = true }
glam = { workspace = true } glam = { workspace = true }
# We don't have wgpu on multiple threads (yet) https://github.com/gfx-rs/wgpu/blob/trunk/CHANGELOG.md#wgpu-types-now-send-sync-on-wasm meval = { workspace = true }
wgpu = { workspace = true, features = ["fragile-send-sync-non-atomic-wasm"] } wgpu = { workspace = true, features = [
meval = "0.2.0" "fragile-send-sync-non-atomic-wasm",
] } # We don't have wgpu on multiple threads (yet) https://github.com/gfx-rs/wgpu/blob/trunk/CHANGELOG.md#wgpu-types-now-send-sync-on-wasm
[dependencies.web-sys] web-sys = { workspace = true, features = [
workspace = true
features = [
"Window", "Window",
"CanvasRenderingContext2d", "CanvasRenderingContext2d",
"Document", "Document",
"HtmlCanvasElement", "HtmlCanvasElement",
"IdleRequestOptions" "IdleRequestOptions",
] ] }
# Optional workspace dependencies
ron = { workspace = true, optional = true }
[package.metadata.wasm-pack.profile.dev] [package.metadata.wasm-pack.profile.dev]
wasm-opt = false wasm-opt = false

View File

@ -1,7 +1,7 @@
[package] [package]
name = "bezier-rs" name = "bezier-rs"
version = "0.4.0" version = "0.4.0"
rust-version = "1.66.0" rust-version = "1.70.0"
edition = "2021" edition = "2021"
authors = ["Graphite Authors <contact@graphite.rs>"] authors = ["Graphite Authors <contact@graphite.rs>"]
description = "Computational geometry algorithms for Bézier segments and shapes useful in the context of 2D graphics" description = "Computational geometry algorithms for Bézier segments and shapes useful in the context of 2D graphics"
@ -14,8 +14,12 @@ repository = "https://github.com/GraphiteEditor/Graphite/tree/master/libraries/b
documentation = "https://graphite.rs/libraries/bezier-rs/" documentation = "https://graphite.rs/libraries/bezier-rs/"
[dependencies] [dependencies]
# Required dependencies
glam = { version = "0.25", features = ["serde"] } glam = { version = "0.25", features = ["serde"] }
# Optional local dependencies
dyn-any = { version = "0.3.0", path = "../dyn-any", optional = true } dyn-any = { version = "0.3.0", path = "../dyn-any", optional = true }
# Optional workspace dependencies
serde = { workspace = true, optional = true } serde = { workspace = true, optional = true }
log = { workspace = true, optional = true } log = { workspace = true, optional = true }

View File

@ -1,7 +1,7 @@
[package] [package]
name = "dyn-any" name = "dyn-any"
version = "0.3.1" version = "0.3.1"
rust-version = "1.66.0" rust-version = "1.70.0"
edition = "2021" edition = "2021"
authors = ["Graphite Authors <contact@graphite.rs>"] authors = ["Graphite Authors <contact@graphite.rs>"]
description = "An Any trait that works for arbitrary lifetimes" description = "An Any trait that works for arbitrary lifetimes"
@ -11,22 +11,25 @@ homepage = "https://graphite.rs/libraries/dyn-any"
repository = "https://github.com/GraphiteEditor/Graphite/tree/master/libraries/dyn-any" repository = "https://github.com/GraphiteEditor/Graphite/tree/master/libraries/dyn-any"
documentation = "https://docs.rs/dyn-any" documentation = "https://docs.rs/dyn-any"
[dependencies]
dyn-any-derive = { path = "derive", version = "0.3.0", optional = true }
log = { version = "0.4", optional = true }
glam = { version = "0.25", optional = true, default-features = false }
[features] [features]
default = ["std", "large-atomics"]
std = ["alloc", "rc", "glam/default"]
large-atomics = []
alloc = []
derive = ["dyn-any-derive"] derive = ["dyn-any-derive"]
log-bad-types = ["log"] log-bad-types = ["log"]
# Opt into impls for Rc<T> and Arc<T>. # Opt into impls for Rc<T> and Arc<T>.
rc = [] rc = []
# Opt into impls for some glam types # Opt into impls for some glam types
glam = ["dep:glam"] glam = ["dep:glam"]
alloc = []
large-atomics = [] [dependencies]
std = ["alloc", "rc", "glam/default"] # Optional local dependencies
default = ["std", "large-atomics"] dyn-any-derive = { path = "derive", optional = true }
# Optional dependencies
log = { version = "0.4", optional = true }
glam = { version = "0.25", optional = true, default-features = false }
[package.metadata.docs.rs] [package.metadata.docs.rs]
all-features = true all-features = true

View File

@ -14,6 +14,7 @@ readme = "../README.md"
proc-macro = true proc-macro = true
[dependencies] [dependencies]
# Workspace dependencies
proc-macro2 = { workspace = true } proc-macro2 = { workspace = true }
quote = { workspace = true } quote = { workspace = true }
syn = { workspace = true, default-features = false, features = [ syn = { workspace = true, default-features = false, features = [
@ -25,4 +26,5 @@ syn = { workspace = true, default-features = false, features = [
] } ] }
[dev-dependencies] [dev-dependencies]
# Local dependencies
dyn-any = { path = "..", features = ["derive"] } dyn-any = { path = "..", features = ["derive"] }

View File

@ -12,15 +12,21 @@ homepage = "https://github.com/GraphiteEditor/Graphite/tree/master/libraries/raw
repository = "https://github.com/GraphiteEditor/Graphite/tree/master/libraries/raw-rs" repository = "https://github.com/GraphiteEditor/Graphite/tree/master/libraries/raw-rs"
documentation = "https://docs.rs/raw-rs" documentation = "https://docs.rs/raw-rs"
[dependencies]
bitstream-io = "2.3.0"
num_enum = "0.7.2"
thiserror = { workspace = true }
tag-derive = { path = "tag-derive" }
libraw-rs = { version = "0.0.4", optional = true }
[dev-dependencies]
downloader = "0.2.7"
[features] [features]
raw-rs-tests = ["libraw-rs"] raw-rs-tests = ["libraw-rs"]
[dependencies]
# Local dependencies
tag-derive = { path = "tag-derive" }
# Required dependencies
bitstream-io = "2.3.0"
num_enum = "0.7.2"
thiserror = "1.0"
# Optional dependencies
libraw-rs = { version = "0.0.4", optional = true } # Should be a dev dependency, but Cargo currently doesn't allow optional dev dependencies
[dev-dependencies]
# Required dependencies
downloader = "0.2.7"

View File

@ -12,5 +12,6 @@ repository = "https://github.com/GraphiteEditor/Graphite/tree/master/libraries/r
proc-macro = true proc-macro = true
[dependencies] [dependencies]
quote.workspace = true # Workspace dependencies
syn.workspace = true quote = { workspace = true }
syn = { workspace = true }

View File

@ -4,22 +4,14 @@ version = "0.1.0"
edition = "2021" edition = "2021"
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
#tokio = { version = "1.0", features = ["full"] } # Local dependencies
serde_json = "1.0" graph-craft = { path = "../graph-craft", features = ["serde"] }
graph-craft = { version = "0.1.0", path = "../graph-craft", features = [ gpu-executor = { path = "../gpu-executor" }
"serde", gpu-compiler-bin-wrapper = { path = "../gpu-compiler/gpu-compiler-bin-wrapper" }
] }
# Workspace dependencies
graphene-core = { workspace = true } graphene-core = { workspace = true }
gpu-executor = { version = "0.1.0", path = "../gpu-executor" }
gpu-compiler-bin-wrapper = { version = "0.1.0", path = "../gpu-compiler/gpu-compiler-bin-wrapper" }
anyhow = { workspace = true } anyhow = { workspace = true }
reqwest = { version = "0.11", features = [ serde_json = { workspace = true }
"blocking", reqwest = { workspace = true, features = ["blocking", "json", "rustls-tls"] }
"serde_json",
"json",
"rustls",
"rustls-tls",
] }

View File

@ -4,18 +4,17 @@ version = "0.1.0"
edition = "2021" edition = "2021"
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
tokio = { version = "1", features = ["full"] } # Local dependencies
axum = "0.7" graph-craft = { path = "../graph-craft", features = ["serde"] }
serde_json = "1.0" gpu-compiler-bin-wrapper = { path = "../gpu-compiler/gpu-compiler-bin-wrapper" }
graph-craft = { version = "0.1.0", path = "../graph-craft", features = [ tokio = { workspace = true, features = ["full"] }
"serde", axum = { workspace = true }
] } serde_json = { workspace = true }
gpu-compiler-bin-wrapper = { version = "0.1.0", path = "../gpu-compiler/gpu-compiler-bin-wrapper" } serde = { workspace = true, features = ["derive"] }
serde = { version = "1.0", features = ["derive"] } tempfile = { workspace = true }
tempfile = "3.6.0" anyhow = { workspace = true }
anyhow = "1.0.72" futures = { workspace = true }
futures = "0.3"
# Required dependencies
tower-http = { version = "0.5", features = ["cors"] } tower-http = { version = "0.5", features = ["cors"] }

View File

@ -6,9 +6,14 @@ description = "API definitions for Graphene"
authors = ["Graphite Authors <contact@graphite.rs>"] authors = ["Graphite Authors <contact@graphite.rs>"]
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features] [features]
default = ["serde", "kurbo", "log", "std", "rand_chacha", "wasm"]
log = ["dep:log"]
gpu = ["spirv-std", "glam/bytemuck", "dyn-any", "glam/libm"]
nightly = []
alloc = ["dyn-any", "bezier-rs"]
type_id_logging = []
wasm = ["web-sys"]
std = [ std = [
"dyn-any", "dyn-any",
"dyn-any/std", "dyn-any/std",
@ -19,8 +24,6 @@ std = [
"rustybuzz", "rustybuzz",
"image", "image",
] ]
default = ["serde", "kurbo", "log", "std", "rand_chacha", "wasm"]
log = ["dep:log"]
serde = [ serde = [
"dep:serde", "dep:serde",
"glam/serde", "glam/serde",
@ -28,44 +31,45 @@ serde = [
"bezier-rs/serde", "bezier-rs/serde",
"base64", "base64",
] ]
gpu = ["spirv-std", "glam/bytemuck", "dyn-any", "glam/libm"]
nightly = []
alloc = ["dyn-any", "bezier-rs"]
type_id_logging = []
wasm = ["web-sys"]
[dependencies] [dependencies]
# Workspace dependencies
bytemuck = { workspace = true, features = ["derive"] }
node-macro = { workspace = true }
num-derive = { workspace = true }
num-traits = { workspace = true, default-features = false, features = ["i128"] }
usvg = { workspace = true }
rand = { workspace = true, default-features = false, features = ["std_rng"] }
glam = { workspace = true, default-features = false, features = [
"scalar-math",
] }
# Optional workspace dependencies
dyn-any = { workspace = true, optional = true } dyn-any = { workspace = true, optional = true }
spirv-std = { workspace = true, optional = true } spirv-std = { workspace = true, optional = true }
bytemuck = { workspace = true, features = ["derive"] }
serde = { workspace = true, optional = true, features = ["derive"] } serde = { workspace = true, optional = true, features = ["derive"] }
log = { workspace = true, optional = true } log = { workspace = true, optional = true }
rand_chacha = { workspace = true, optional = true } rand_chacha = { workspace = true, optional = true }
bezier-rs = { workspace = true, optional = true } bezier-rs = { workspace = true, optional = true }
kurbo = { workspace = true, optional = true } kurbo = { workspace = true, optional = true }
glam = { workspace = true, default-features = false, features = [
"scalar-math",
] }
node-macro = { workspace = true }
base64 = { workspace = true, optional = true } base64 = { workspace = true, optional = true }
image = { workspace = true, optional = true, default-features = false, features = [
"png",
] }
specta = { workspace = true, optional = true } specta = { workspace = true, optional = true }
rustybuzz = { workspace = true, optional = true } rustybuzz = { workspace = true, optional = true }
num-derive = { workspace = true }
num-traits = { workspace = true, default-features = false, features = ["i128"] }
wasm-bindgen = { workspace = true, optional = true } wasm-bindgen = { workspace = true, optional = true }
js-sys = { workspace = true, optional = true } js-sys = { workspace = true, optional = true }
web-sys = { workspace = true, optional = true, features = [ web-sys = { workspace = true, optional = true, features = [
"HtmlCanvasElement", "HtmlCanvasElement",
] } ] }
usvg = { workspace = true } image = { workspace = true, optional = true, default-features = false, features = [
rand = { workspace = true, default-features = false, features = ["std_rng"] } "png",
] }
[dev-dependencies] [dev-dependencies]
# Workspace dependencies
tokio = { workspace = true, features = ["rt", "macros"] } tokio = { workspace = true, features = ["rt", "macros"] }
[lints.rust] [lints.rust]
# the spirv target is not in the list of common cfgs so must be added manually # the spirv target is not in the list of common cfgs so must be added manually
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_arch, values("spirv"))'] } unexpected_cfgs = { level = "warn", check-cfg = [
'cfg(target_arch, values("spirv"))',
] }

View File

@ -151,7 +151,7 @@ impl Image<Color> {
let (data, width, height) = self.to_flat_u8(); let (data, width, height) = self.to_flat_u8();
let mut png = Vec::new(); let mut png = Vec::new();
let encoder = ::image::codecs::png::PngEncoder::new(&mut png); let encoder = ::image::codecs::png::PngEncoder::new(&mut png);
encoder.write_image(&data, width, height, ::image::ColorType::Rgba8).expect("failed to encode image as png"); encoder.write_image(&data, width, height, ::image::ExtendedColorType::Rgba8).expect("failed to encode image as png");
png png
} }
} }

View File

@ -9,25 +9,29 @@ default = []
profiling = ["nvtx"] profiling = ["nvtx"]
serde = ["graphene-core/serde", "glam/serde"] serde = ["graphene-core/serde", "glam/serde"]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
graphene-core = { workspace = true, features = ["async", "std", "alloc"] } # Local dependencies
graph-craft = { path = "../graph-craft", features = ["serde"] } graph-craft = { path = "../graph-craft", features = ["serde"] }
gpu-executor = { path = "../gpu-executor" } gpu-executor = { path = "../gpu-executor" }
# Workspace dependencies
graphene-core = { workspace = true, features = ["async", "std", "alloc"] }
dyn-any = { workspace = true, features = ["log-bad-types", "rc", "glam"] } dyn-any = { workspace = true, features = ["log-bad-types", "rc", "glam"] }
num-traits = { workspace = true } num-traits = { workspace = true }
log = { workspace = true } log = { workspace = true }
serde = { workspace = true } serde = { workspace = true }
glam = { workspace = true } glam = { workspace = true }
base64 = { workspace = true } base64 = { workspace = true }
bytemuck = { workspace = true } bytemuck = { workspace = true }
nvtx = { version = "1.1.1", optional = true }
tempfile = { workspace = true } tempfile = { workspace = true }
anyhow = { workspace = true }
serde_json = { workspace = true }
# Required dependencies
tera = { version = "1.17.1" }
spirv-builder = { version = "0.9", default-features = false, features = [ spirv-builder = { version = "0.9", default-features = false, features = [
"use-installed-tools", "use-installed-tools",
] } ] }
tera = { version = "1.17.1" }
anyhow = { workspace = true } # Optional dependencies
serde_json = { workspace = true } nvtx = { version = "1.3", optional = true }

View File

@ -8,12 +8,13 @@ license = "MIT OR Apache-2.0"
default = [] default = []
profiling = [] profiling = []
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
# Local dependencies
graph-craft = { path = "../../graph-craft", features = ["serde"] } graph-craft = { path = "../../graph-craft", features = ["serde"] }
gpu-executor = { path = "../../gpu-executor" } gpu-executor = { path = "../../gpu-executor" }
log = "0.4"
anyhow = "1.0.66" # Workspace dependencies
serde_json = "1.0.91" log = { workspace = true }
serde = { version = "1.0", features = ["derive"] } anyhow = { workspace = true }
serde_json = { workspace = true }
serde = { workspace = true, features = ["derive"] }

View File

@ -7,19 +7,19 @@ license = "MIT OR Apache-2.0"
[features] [features]
default = [] default = []
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
# Local dependencies
node-macro = { path = "../node-macro" }
# Workspace dependencies
graphene-core = { workspace = true, features = ["std", "alloc", "gpu"] } graphene-core = { workspace = true, features = ["std", "alloc", "gpu"] }
graph-craft = { workspace = true } graph-craft = { workspace = true }
node-macro = { path = "../node-macro" }
dyn-any = { workspace = true, features = ["log-bad-types", "rc", "glam"] } dyn-any = { workspace = true, features = ["log-bad-types", "rc", "glam"] }
num-traits = { workspace = true } num-traits = { workspace = true }
log = { workspace = true } log = { workspace = true }
serde = { workspace = true } serde = { workspace = true }
glam = { workspace = true } glam = { workspace = true }
base64 = { workspace = true } base64 = { workspace = true }
bytemuck = { workspace = true } bytemuck = { workspace = true }
anyhow = { workspace = true } anyhow = { workspace = true }
futures = { workspace = true } futures = { workspace = true }

View File

@ -9,21 +9,24 @@ default = ["dealloc_nodes"]
serde = ["dep:serde", "graphene-core/serde", "glam/serde", "bezier-rs/serde"] serde = ["dep:serde", "graphene-core/serde", "glam/serde", "bezier-rs/serde"]
dealloc_nodes = [] dealloc_nodes = []
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
graphene-core = { workspace = true, features = ["std"] } # Local dependencies
dyn-any = { path = "../../libraries/dyn-any", features = [ dyn-any = { path = "../../libraries/dyn-any", features = [
"log-bad-types", "log-bad-types",
"rc", "rc",
"glam", "glam",
] } ] }
# Workspace dependencies
graphene-core = { workspace = true, features = ["std"] }
num-traits = { workspace = true } num-traits = { workspace = true }
log = { workspace = true } log = { workspace = true }
serde = { workspace = true, optional = true }
glam = { workspace = true } glam = { workspace = true }
base64 = { workspace = true } base64 = { workspace = true }
bezier-rs = { workspace = true } bezier-rs = { workspace = true }
specta = { workspace = true } specta = { workspace = true }
bytemuck = { workspace = true } bytemuck = { workspace = true }
rustc-hash = { workspace = true } rustc-hash = { workspace = true }
# Optional workspace dependencies
serde = { workspace = true, optional = true }

View File

@ -930,12 +930,12 @@ mod test {
assert_eq!( assert_eq!(
ids, ids,
vec![ vec![
NodeId(17957338642374791135), NodeId(8751908307531981068),
NodeId(1303972037140595827), NodeId(3279077344149194814),
NodeId(15485192931817078264), NodeId(532186116905587629),
NodeId(9739645351331265115), NodeId(10764326338085309082),
NodeId(4165308598738454684), NodeId(18015434340620913446),
NodeId(5557529806312473178) NodeId(11801333199647382191)
] ]
); );
} }

View File

@ -6,9 +6,13 @@ description = "CLI interface for the graphene language"
authors = ["Graphite Authors <contact@graphite.rs>"] authors = ["Graphite Authors <contact@graphite.rs>"]
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features] [features]
default = ["wgpu"]
wgpu = ["wgpu-executor", "gpu", "graphene-std/wgpu"]
wayland = ["graphene-std/wayland"]
profiling = ["wgpu-executor/profiling"]
passthrough = ["wgpu-executor/passthrough"]
quantization = ["graphene-std/quantization"]
gpu = [ gpu = [
"interpreted-executor/gpu", "interpreted-executor/gpu",
"graphene-std/gpu", "graphene-std/gpu",
@ -16,37 +20,35 @@ gpu = [
"wgpu-executor", "wgpu-executor",
"gpu-executor", "gpu-executor",
] ]
default = ["wgpu"]
wgpu = ["wgpu-executor", "gpu", "graphene-std/wgpu"]
wayland = ["graphene-std/wayland"]
profiling = ["wgpu-executor/profiling"]
passthrough = ["wgpu-executor/passthrough"]
quantization = ["graphene-std/quantization"]
[dependencies] [dependencies]
# Local dependencies
graphene-std = { path = "../gstd", features = ["serde"] }
interpreted-executor = { path = "../interpreted-executor" }
# Workspace dependencies
log = { workspace = true } log = { workspace = true }
bitflags = { workspace = true } bitflags = { workspace = true }
serde = { workspace = true } serde = { workspace = true }
serde_json = { workspace = true } serde_json = { workspace = true }
bezier-rs = { workspace = true } bezier-rs = { workspace = true }
glam = { workspace = true } glam = { workspace = true }
graphene-std = { path = "../gstd", features = ["serde"] } graph-craft = { workspace = true }
dyn-any = { workspace = true }
graphene-core = { workspace = true }
futures = { workspace = true }
fern = { workspace = true }
chrono = { workspace = true }
wgpu = { workspace = true }
tokio = { workspace = true, features = ["macros", "rt"] }
image = { workspace = true, default-features = false, features = [ image = { workspace = true, default-features = false, features = [
"bmp", "bmp",
"png", "png",
] } ] }
graph-craft = { workspace = true }
# Optional local dependencies
wgpu-executor = { path = "../wgpu-executor", optional = true } wgpu-executor = { path = "../wgpu-executor", optional = true }
gpu-executor = { path = "../gpu-executor", optional = true } gpu-executor = { path = "../gpu-executor", optional = true }
interpreted-executor = { path = "../interpreted-executor" }
dyn-any = { workspace = true }
graphene-core = { workspace = true }
wasm-bindgen = { workspace = true, optional = true }
futures = { workspace = true }
fern = { workspace = true }
chrono = { workspace = true }
tokio = { workspace = true, features = ["macros", "rt"] }
wgpu = { workspace = true }
[dev-dependencies] # Optional workspace dependencies
wasm-bindgen = { workspace = true, optional = true }

View File

@ -6,8 +6,6 @@ description = "Graphene standard library"
authors = ["Graphite Authors <contact@graphite.rs>"] authors = ["Graphite Authors <contact@graphite.rs>"]
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features] [features]
default = ["wasm", "imaginate"] default = ["wasm", "imaginate"]
gpu = [ gpu = [
@ -27,34 +25,17 @@ resvg = ["dep:resvg"]
wayland = [] wayland = []
[dependencies] [dependencies]
fastnoise-lite = { workspace = true } # Local dependencies
rand = { workspace = true, default-features = false, features = [ dyn-any = { path = "../../libraries/dyn-any", features = ["derive"] }
"alloc", graph-craft = { path = "../graph-craft", features = ["serde"] }
"small_rng",
] }
rand_chacha = { workspace = true }
autoquant = { git = "https://github.com/truedoctor/autoquant", optional = true, features = [
"fitting",
] }
graphene-core = { path = "../gcore", default-features = false, features = [ graphene-core = { path = "../gcore", default-features = false, features = [
"std", "std",
"serde", "serde",
"alloc", "alloc",
] } ] }
dyn-any = { path = "../../libraries/dyn-any", features = ["derive"] }
graph-craft = { path = "../graph-craft", features = ["serde"] } # Workspace dependencies
vulkan-executor = { path = "../vulkan-executor", optional = true } fastnoise-lite = { workspace = true }
wgpu-executor = { path = "../wgpu-executor", optional = true }
gpu-executor = { path = "../gpu-executor", optional = true }
gpu-compiler-bin-wrapper = { path = "../gpu-compiler/gpu-compiler-bin-wrapper", optional = true }
compilation-client = { path = "../compilation-client", optional = true }
bytemuck = { workspace = true }
image = { workspace = true, default-features = false, features = [
"png",
"jpeg",
] }
base64 = { workspace = true, optional = true }
wgpu = { workspace = true, optional = true }
log = { workspace = true } log = { workspace = true }
bezier-rs = { workspace = true, features = ["serde"] } bezier-rs = { workspace = true, features = ["serde"] }
glam = { workspace = true, features = ["serde"] } glam = { workspace = true, features = ["serde"] }
@ -63,17 +44,37 @@ rustc-hash = { workspace = true }
serde_json = { workspace = true } serde_json = { workspace = true }
reqwest = { workspace = true } reqwest = { workspace = true }
futures = { workspace = true } futures = { workspace = true }
wasm-bindgen = { workspace = true, optional = true }
js-sys = { workspace = true, optional = true }
wgpu-types = { workspace = true } wgpu-types = { workspace = true }
wasm-bindgen-futures = { workspace = true, optional = true }
winit = { workspace = true } winit = { workspace = true }
url = { workspace = true } url = { workspace = true }
usvg = { workspace = true }
rand_chacha = { workspace = true }
rand = { workspace = true, default-features = false, features = [
"alloc",
"small_rng",
] }
bytemuck = { workspace = true }
image = { workspace = true, default-features = false, features = [
"png",
"jpeg",
] }
# Optional local dependencies
vulkan-executor = { path = "../vulkan-executor", optional = true }
wgpu-executor = { path = "../wgpu-executor", optional = true }
gpu-executor = { path = "../gpu-executor", optional = true }
gpu-compiler-bin-wrapper = { path = "../gpu-compiler/gpu-compiler-bin-wrapper", optional = true }
compilation-client = { path = "../compilation-client", optional = true }
# Optional workspace dependencies
base64 = { workspace = true, optional = true }
wgpu = { workspace = true, optional = true }
wasm-bindgen = { workspace = true, optional = true }
js-sys = { workspace = true, optional = true }
wasm-bindgen-futures = { workspace = true, optional = true }
tokio = { workspace = true, optional = true, features = ["fs", "io-std"] } tokio = { workspace = true, optional = true, features = ["fs", "io-std"] }
image-compare = { version = "0.3.0", optional = true }
vello = { workspace = true, optional = true } vello = { workspace = true, optional = true }
resvg = { workspace = true, optional = true } resvg = { workspace = true, optional = true }
usvg = { workspace = true }
serde = { workspace = true, optional = true, features = ["derive"] } serde = { workspace = true, optional = true, features = ["derive"] }
web-sys = { workspace = true, optional = true, features = [ web-sys = { workspace = true, optional = true, features = [
"Window", "Window",
@ -86,3 +87,9 @@ web-sys = { workspace = true, optional = true, features = [
"HtmlImageElement", "HtmlImageElement",
"ImageBitmapRenderingContext", "ImageBitmapRenderingContext",
] } ] }
autoquant = { git = "https://github.com/truedoctor/autoquant", optional = true, features = [
"fitting",
] }
# Optional dependencies
image-compare = { version = "0.4.1", optional = true }

View File

@ -6,7 +6,7 @@ use glam::{DVec2, U64Vec2};
use graph_craft::imaginate_input::{ImaginateController, ImaginateMaskStartingFill, ImaginatePreferences, ImaginateSamplingMethod, ImaginateServerStatus, ImaginateStatus, ImaginateTerminationHandle}; use graph_craft::imaginate_input::{ImaginateController, ImaginateMaskStartingFill, ImaginatePreferences, ImaginateSamplingMethod, ImaginateServerStatus, ImaginateStatus, ImaginateTerminationHandle};
use graphene_core::application_io::NodeGraphUpdateMessage; use graphene_core::application_io::NodeGraphUpdateMessage;
use graphene_core::raster::{Color, Image, Luma, Pixel}; use graphene_core::raster::{Color, Image, Luma, Pixel};
use image::{DynamicImage, ImageBuffer, ImageOutputFormat}; use image::{DynamicImage, ImageBuffer, ImageFormat};
use reqwest::Url; use reqwest::Url;
const PROGRESS_EVERY_N_STEPS: u32 = 5; const PROGRESS_EVERY_N_STEPS: u32 = 5;
@ -468,7 +468,7 @@ fn image_to_base64<P: Pixel>(image: Image<P>) -> Result<String, Error> {
}; };
let mut png_data = std::io::Cursor::new(vec![]); let mut png_data = std::io::Cursor::new(vec![]);
image.write_to(&mut png_data, ImageOutputFormat::Png).map_err(Error::ImageEncode)?; image.write_to(&mut png_data, ImageFormat::Png).map_err(Error::ImageEncode)?;
Ok(BASE64_STANDARD.encode(png_data.into_inner())) Ok(BASE64_STANDARD.encode(png_data.into_inner()))
} }

View File

@ -10,19 +10,21 @@ serde = ["dep:serde", "graphene-std/serde", "glam/serde"]
gpu = ["graphene-std/gpu", "graphene-core/gpu", "graphene-std/wgpu"] gpu = ["graphene-std/gpu", "graphene-core/gpu", "graphene-std/wgpu"]
quantization = ["graphene-std/quantization"] quantization = ["graphene-std/quantization"]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
graphene-core = { workspace = true, features = ["std"] } # Local dependencies
graphene-std = { path = "../gstd", features = ["serde"] } graphene-std = { path = "../gstd", features = ["serde"] }
graph-craft = { path = "../graph-craft" } graph-craft = { path = "../graph-craft" }
gpu-executor = { path = "../gpu-executor" } gpu-executor = { path = "../gpu-executor" }
wgpu-executor = { path = "../wgpu-executor" } wgpu-executor = { path = "../wgpu-executor" }
# Workspace dependencies
graphene-core = { workspace = true, features = ["std"] }
dyn-any = { workspace = true, features = ["log-bad-types", "glam"] } dyn-any = { workspace = true, features = ["log-bad-types", "glam"] }
num-traits = { workspace = true } num-traits = { workspace = true }
log = { workspace = true } log = { workspace = true }
serde = { workspace = true, optional = true }
glam = { workspace = true } glam = { workspace = true }
# Remove when `core::cell::LazyCell` is stabilized (<https://doc.rust-lang.org/core/cell/struct.LazyCell.html>)
once_cell = "1.18"
futures = { workspace = true } futures = { workspace = true }
once_cell = { workspace = true }
# Optional workspace dependencies
serde = { workspace = true, optional = true }

View File

@ -2,7 +2,7 @@
name = "node-macro" name = "node-macro"
publish = false publish = false
version = "0.0.0" version = "0.0.0"
rust-version = "1.66.0" rust-version = "1.70.0"
authors = ["Graphite Authors <contact@graphite.rs>"] authors = ["Graphite Authors <contact@graphite.rs>"]
edition = "2021" edition = "2021"
readme = "../../README.md" readme = "../../README.md"
@ -10,12 +10,11 @@ homepage = "https://graphite.rs"
repository = "https://github.com/GraphiteEditor/Graphite" repository = "https://github.com/GraphiteEditor/Graphite"
license = "Apache-2.0" license = "Apache-2.0"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[lib] [lib]
proc-macro = true proc-macro = true
[dependencies] [dependencies]
# Workspace dependencies
syn = { workspace = true } syn = { workspace = true }
proc-macro2 = { workspace = true } proc-macro2 = { workspace = true }
quote = { workspace = true } quote = { workspace = true }

View File

@ -7,9 +7,8 @@ license = "MIT OR Apache-2.0"
[features] [features]
default = [] default = []
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
# Local dependencies
graphene-core = { path = "../gcore", features = ["std", "alloc", "gpu"] } graphene-core = { path = "../gcore", features = ["std", "alloc", "gpu"] }
graph-craft = { path = "../graph-craft" } graph-craft = { path = "../graph-craft" }
dyn-any = { path = "../../libraries/dyn-any", features = [ dyn-any = { path = "../../libraries/dyn-any", features = [
@ -17,11 +16,17 @@ dyn-any = { path = "../../libraries/dyn-any", features = [
"rc", "rc",
"glam", "glam",
] } ] }
# Workspace dependencies
num-traits = { workspace = true } num-traits = { workspace = true }
log = { workspace = true } log = { workspace = true }
serde = { workspace = true, optional = true }
glam = { workspace = true } glam = { workspace = true }
base64 = { workspace = true } base64 = { workspace = true }
vulkano = { git = "https://github.com/GraphiteEditor/vulkano", branch = "fix_rust_gpu" }
bytemuck = { workspace = true } bytemuck = { workspace = true }
anyhow = { workspace = true } anyhow = { workspace = true }
# Required dependencies
vulkano = { git = "https://github.com/GraphiteEditor/vulkano", branch = "fix_rust_gpu" }
# Optional workspace dependencies
serde = { workspace = true, optional = true }

View File

@ -9,16 +9,16 @@ default = []
profiling = ["nvtx"] profiling = ["nvtx"]
passthrough = [] passthrough = []
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
# Local dependencies
gpu-executor = { path = "../gpu-executor" }
# Workspace dependencies
graphene-core = { workspace = true, features = ["std", "alloc", "gpu"] } graphene-core = { workspace = true, features = ["std", "alloc", "gpu"] }
graph-craft = { workspace = true } graph-craft = { workspace = true }
gpu-executor = { path = "../gpu-executor" }
dyn-any = { workspace = true, features = ["log-bad-types", "rc", "glam"] } dyn-any = { workspace = true, features = ["log-bad-types", "rc", "glam"] }
num-traits = { workspace = true } num-traits = { workspace = true }
log = { workspace = true } log = { workspace = true }
serde = { workspace = true, optional = true }
glam = { workspace = true } glam = { workspace = true }
base64 = { workspace = true } base64 = { workspace = true }
bytemuck = { workspace = true } bytemuck = { workspace = true }
@ -26,7 +26,14 @@ anyhow = { workspace = true }
wgpu = { workspace = true, features = ["spirv"] } wgpu = { workspace = true, features = ["spirv"] }
spirv = { workspace = true } spirv = { workspace = true }
futures = { workspace = true } futures = { workspace = true }
futures-intrusive = "0.5.0"
web-sys = { workspace = true, features = ["HtmlCanvasElement"] } web-sys = { workspace = true, features = ["HtmlCanvasElement"] }
winit = { workspace = true } winit = { workspace = true }
nvtx = { version = "1.2", optional = true }
# Required dependencies
futures-intrusive = "0.5.0"
# Optional workspace dependencies
serde = { workspace = true, optional = true }
# Optional dependencies
nvtx = { version = "1.3", optional = true }

View File

@ -2,7 +2,7 @@
name = "graphite-proc-macros" name = "graphite-proc-macros"
publish = false publish = false
version = "0.0.0" version = "0.0.0"
rust-version = "1.66.0" rust-version = "1.70.0"
authors = ["Graphite Authors <contact@graphite.rs>"] authors = ["Graphite Authors <contact@graphite.rs>"]
edition = "2021" edition = "2021"
readme = "../README.md" readme = "../README.md"
@ -19,13 +19,14 @@ default = ["serde-discriminant"]
serde-discriminant = [] serde-discriminant = []
[dependencies] [dependencies]
# Workspace dependencies
proc-macro2 = { workspace = true } proc-macro2 = { workspace = true }
syn = { workspace = true } syn = { workspace = true }
quote = { workspace = true } quote = { workspace = true }
[dev-dependencies.editor]
path = "../editor"
package = "graphite-editor"
[dev-dependencies] [dev-dependencies]
# Local dependencies
editor = { path = "../editor", package = "graphite-editor" }
# Workspace dependencies
serde = { workspace = true } serde = { workspace = true }

View File

@ -2,7 +2,7 @@
name = "bezier-rs-wasm" name = "bezier-rs-wasm"
publish = false publish = false
version = "0.0.0" version = "0.0.0"
rust-version = "1.66.0" rust-version = "1.70.0"
authors = ["Graphite Authors <contact@graphite.rs>"] authors = ["Graphite Authors <contact@graphite.rs>"]
edition = "2021" edition = "2021"
readme = "../../README.md" readme = "../../README.md"
@ -14,12 +14,13 @@ license = "Apache-2.0"
crate-type = ["cdylib", "rlib"] crate-type = ["cdylib", "rlib"]
[dependencies] [dependencies]
# Workspace dependencies
bezier-rs = { workspace = true } bezier-rs = { workspace = true }
log = { workspace = true } log = { workspace = true }
serde = { workspace = true, features = ["derive"] } serde = { workspace = true, features = ["derive"] }
serde-wasm-bindgen = { workspace = true }
wasm-bindgen = { workspace = true } wasm-bindgen = { workspace = true }
serde_json = { workspace = true } serde_json = { workspace = true }
serde-wasm-bindgen = "0.6"
js-sys = { workspace = true } js-sys = { workspace = true }
glam = { workspace = true, features = ["serde"] } glam = { workspace = true, features = ["serde"] }