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",
"website/other/bezier-rs-demos/wasm",
]
resolver = "2"
exclude = ["node-graph/gpu-compiler"]
resolver = "2"
[workspace.dependencies]
specta = { git = "https://github.com/oscartbeaumont/specta.git", features = [
"glam",
"typescript",
] }
rustc-hash = "1.1.0"
# wasm-bindgen upgrades may break various things so we pin the version
wasm-bindgen = "=0.2.91"
# Local dependencies
dyn-any = { path = "libraries/dyn-any", features = ["derive", "glam"] }
graphene-core = { path = "node-graph/gcore" }
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"] }
async-trait = { version = "0.1" }
async-trait = "0.1"
serde = { version = "1.0", features = ["derive", "rc"] }
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"
log = { version = "0.4" }
env_logger = "0.11"
log = "0.4"
bitflags = { version = "2.4", features = ["serde"] }
derivative = "2.2.0"
tempfile = "3"
derivative = "2.2"
tempfile = "3.6"
thiserror = "1.0"
anyhow = "1.0.66"
anyhow = "1.0"
proc-macro2 = "1"
syn = { version = "2.0", default-features = false, features = ["full", "derive"] }
quote = "1.0"
axum = "0.6"
chrono = "^0.4.23"
axum = "0.7"
chrono = "0.4"
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 = "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"
url = "2.4.0"
url = "2.5"
tokio = { version = "1.29", features = ["fs", "io-std"] }
vello = { version = "0.1.0" }
resvg = { version = "0.39" }
rand = { version = "0.8.5", default-features = false }
rand_chacha = { version = "0.3.1" }
bezier-rs = { path = "libraries/bezier-rs", features = ["dyn-any"] }
vello = "0.1"
resvg = "0.39"
usvg = "0.39"
rand = { version = "0.8", default-features = false }
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 = [
"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]
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]
opt-level = 1
[profile.dev.package.graphene-std]
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]
opt-level = 3

View file

@ -2,7 +2,7 @@
name = "graphite-editor"
publish = false
version = "0.0.0"
rust-version = "1.66.0"
rust-version = "1.70.0"
authors = ["Graphite Authors <contact@graphite.rs>"]
edition = "2021"
readme = "../README.md"
@ -12,6 +12,7 @@ license = "Apache-2.0"
[features]
default = ["wasm"]
wasm = ["wasm-bindgen", "graphene-std/wasm", "wasm-bindgen-futures"]
gpu = [
"interpreted-executor/gpu",
"graphene-std/gpu",
@ -23,34 +24,31 @@ quantization = [
"graphene-std/quantization",
"interpreted-executor/quantization",
]
wasm = ["wasm-bindgen", "graphene-std/wasm", "wasm-bindgen-futures"]
[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 }
bitflags = { workspace = true }
thiserror = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
graphite-proc-macros = { path = "../proc-macros" }
bezier-rs = { workspace = true }
glam = { workspace = true, features = ["serde", "debug-glam-assert"] }
derivative = { workspace = true }
specta.workspace = true
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 }
graphene-core = { path = "../node-graph/gcore" }
graphene-std = { path = "../node-graph/gstd", features = ["serde"] }
num_enum = "0.6.1"
num_enum = { workspace = true }
usvg = { workspace = true }
wasm-bindgen = { workspace = true, optional = 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"
once_cell = { workspace = true }
web-sys = { workspace = true, features = [
"Document",
"DomRect",
@ -60,9 +58,17 @@ web-sys = { workspace = true, features = [
"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]
env_logger = "0.10"
# Workspace dependencies
env_logger = { workspace = true }
futures = { workspace = true }
tokio = { workspace = true, features = ["rt", "macros"] }

View file

@ -4,29 +4,31 @@
#[ignore]
#[test]
fn generate_ts_types() {
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;
// TODO: Un-comment this out when we figure out how to reenable the "typescript` Specta feature flag
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
.iter()
.map(|(_, v)| v)
.flat_map(|v| export_named_datatype(&config, v, &type_map))
.for_each(|e| export += &format!("\n\n{e}"));
// export += &export_named_datatype(&config, &datatype, &type_map).unwrap();
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 = ""
default-run = "graphite-desktop"
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
[build-dependencies]
tauri-build = { version = "1.2", features = [] }
[features]
# by default Tauri runs in production mode
# when `tauri dev` runs it is executed with `cargo run --no-default-features` if `devPath` is an URL
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]
# Local dependencies
graphite-editor = { path = "../../editor" }
# Workspace dependencies
serde_json = { workspace = true }
serde = { workspace = true }
tauri = { version = "1.5", features = [
"api-all",
"devtools",
"linux-protocol-headers",
"wry",
] }
axum = { workspace = true }
graphite-editor = { path = "../../editor" }
chrono = { workspace = true }
tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }
ron = { workspace = true }
@ -32,12 +34,14 @@ log = { workspace = true }
fern = { workspace = true }
futures = { workspace = true }
[features]
gpu = ["graphite-editor/gpu"]
quantization = ["graphite-editor/quantization"]
# by default Tauri runs in production mode
# when `tauri dev` runs it is executed with `cargo run --no-default-features` if `devPath` is an URL
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"]
# Required dependencies
tauri = { version = "1.5", features = [
"api-all",
"devtools",
"linux-protocol-headers",
"wry",
] }
[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
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()

View file

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

View file

@ -1,7 +1,7 @@
[package]
name = "bezier-rs"
version = "0.4.0"
rust-version = "1.66.0"
rust-version = "1.70.0"
edition = "2021"
authors = ["Graphite Authors <contact@graphite.rs>"]
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/"
[dependencies]
# Required dependencies
glam = { version = "0.25", features = ["serde"] }
# Optional local dependencies
dyn-any = { version = "0.3.0", path = "../dyn-any", optional = true }
# Optional workspace dependencies
serde = { workspace = true, optional = true }
log = { workspace = true, optional = true }

View file

@ -1,7 +1,7 @@
[package]
name = "dyn-any"
version = "0.3.1"
rust-version = "1.66.0"
rust-version = "1.70.0"
edition = "2021"
authors = ["Graphite Authors <contact@graphite.rs>"]
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"
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]
default = ["std", "large-atomics"]
std = ["alloc", "rc", "glam/default"]
large-atomics = []
alloc = []
derive = ["dyn-any-derive"]
log-bad-types = ["log"]
# Opt into impls for Rc<T> and Arc<T>.
rc = []
# Opt into impls for some glam types
glam = ["dep:glam"]
alloc = []
large-atomics = []
std = ["alloc", "rc", "glam/default"]
default = ["std", "large-atomics"]
[dependencies]
# Optional local dependencies
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]
all-features = true

View file

@ -14,6 +14,7 @@ readme = "../README.md"
proc-macro = true
[dependencies]
# Workspace dependencies
proc-macro2 = { workspace = true }
quote = { workspace = true }
syn = { workspace = true, default-features = false, features = [
@ -25,4 +26,5 @@ syn = { workspace = true, default-features = false, features = [
] }
[dev-dependencies]
# Local dependencies
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"
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]
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
[dependencies]
quote.workspace = true
syn.workspace = true
# Workspace dependencies
quote = { workspace = true }
syn = { workspace = true }

View file

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

View file

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

View file

@ -6,9 +6,14 @@ description = "API definitions for Graphene"
authors = ["Graphite Authors <contact@graphite.rs>"]
license = "MIT OR Apache-2.0"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[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 = [
"dyn-any",
"dyn-any/std",
@ -19,8 +24,6 @@ std = [
"rustybuzz",
"image",
]
default = ["serde", "kurbo", "log", "std", "rand_chacha", "wasm"]
log = ["dep:log"]
serde = [
"dep:serde",
"glam/serde",
@ -28,44 +31,45 @@ serde = [
"bezier-rs/serde",
"base64",
]
gpu = ["spirv-std", "glam/bytemuck", "dyn-any", "glam/libm"]
nightly = []
alloc = ["dyn-any", "bezier-rs"]
type_id_logging = []
wasm = ["web-sys"]
[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 }
spirv-std = { workspace = true, optional = true }
bytemuck = { workspace = true, features = ["derive"] }
serde = { workspace = true, optional = true, features = ["derive"] }
log = { workspace = true, optional = true }
rand_chacha = { workspace = true, optional = true }
bezier-rs = { 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 }
image = { workspace = true, optional = true, default-features = false, features = [
"png",
] }
specta = { 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 }
js-sys = { workspace = true, optional = true }
web-sys = { workspace = true, optional = true, features = [
"HtmlCanvasElement",
] }
usvg = { workspace = true }
rand = { workspace = true, default-features = false, features = ["std_rng"] }
image = { workspace = true, optional = true, default-features = false, features = [
"png",
] }
[dev-dependencies]
# Workspace dependencies
tokio = { workspace = true, features = ["rt", "macros"] }
[lints.rust]
# 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 mut png = Vec::new();
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
}
}

View file

@ -9,25 +9,29 @@ default = []
profiling = ["nvtx"]
serde = ["graphene-core/serde", "glam/serde"]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
graphene-core = { workspace = true, features = ["async", "std", "alloc"] }
# Local dependencies
graph-craft = { path = "../graph-craft", features = ["serde"] }
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"] }
num-traits = { workspace = true }
log = { workspace = true }
serde = { workspace = true }
glam = { workspace = true }
base64 = { workspace = true }
bytemuck = { workspace = true }
nvtx = { version = "1.1.1", optional = 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 = [
"use-installed-tools",
] }
tera = { version = "1.17.1" }
anyhow = { workspace = true }
serde_json = { workspace = true }
# Optional dependencies
nvtx = { version = "1.3", optional = true }

View file

@ -8,12 +8,13 @@ license = "MIT OR Apache-2.0"
default = []
profiling = []
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
# Local dependencies
graph-craft = { path = "../../graph-craft", features = ["serde"] }
gpu-executor = { path = "../../gpu-executor" }
log = "0.4"
anyhow = "1.0.66"
serde_json = "1.0.91"
serde = { version = "1.0", features = ["derive"] }
# Workspace dependencies
log = { workspace = true }
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]
default = []
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
# Local dependencies
node-macro = { path = "../node-macro" }
# Workspace dependencies
graphene-core = { workspace = true, features = ["std", "alloc", "gpu"] }
graph-craft = { workspace = true }
node-macro = { path = "../node-macro" }
dyn-any = { workspace = true, features = ["log-bad-types", "rc", "glam"] }
num-traits = { workspace = true }
log = { workspace = true }
serde = { workspace = true }
glam = { workspace = true }
base64 = { workspace = true }
bytemuck = { workspace = true }
anyhow = { 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"]
dealloc_nodes = []
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
graphene-core = { workspace = true, features = ["std"] }
# Local dependencies
dyn-any = { path = "../../libraries/dyn-any", features = [
"log-bad-types",
"rc",
"glam",
] }
# Workspace dependencies
graphene-core = { workspace = true, features = ["std"] }
num-traits = { workspace = true }
log = { workspace = true }
serde = { workspace = true, optional = true }
glam = { workspace = true }
base64 = { workspace = true }
bezier-rs = { workspace = true }
specta = { workspace = true }
bytemuck = { workspace = true }
rustc-hash = { workspace = true }
# Optional workspace dependencies
serde = { workspace = true, optional = true }

View file

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

View file

@ -6,9 +6,13 @@ description = "CLI interface for the graphene language"
authors = ["Graphite Authors <contact@graphite.rs>"]
license = "MIT OR Apache-2.0"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[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 = [
"interpreted-executor/gpu",
"graphene-std/gpu",
@ -16,37 +20,35 @@ gpu = [
"wgpu-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]
# Local dependencies
graphene-std = { path = "../gstd", features = ["serde"] }
interpreted-executor = { path = "../interpreted-executor" }
# Workspace dependencies
log = { workspace = true }
bitflags = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
bezier-rs = { 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 = [
"bmp",
"png",
] }
graph-craft = { workspace = true }
# Optional local dependencies
wgpu-executor = { path = "../wgpu-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>"]
license = "MIT OR Apache-2.0"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features]
default = ["wasm", "imaginate"]
gpu = [
@ -27,34 +25,17 @@ resvg = ["dep:resvg"]
wayland = []
[dependencies]
fastnoise-lite = { workspace = true }
rand = { workspace = true, default-features = false, features = [
"alloc",
"small_rng",
] }
rand_chacha = { workspace = true }
autoquant = { git = "https://github.com/truedoctor/autoquant", optional = true, features = [
"fitting",
] }
# Local dependencies
dyn-any = { path = "../../libraries/dyn-any", features = ["derive"] }
graph-craft = { path = "../graph-craft", features = ["serde"] }
graphene-core = { path = "../gcore", default-features = false, features = [
"std",
"serde",
"alloc",
] }
dyn-any = { path = "../../libraries/dyn-any", features = ["derive"] }
graph-craft = { path = "../graph-craft", features = ["serde"] }
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 }
bytemuck = { workspace = true }
image = { workspace = true, default-features = false, features = [
"png",
"jpeg",
] }
base64 = { workspace = true, optional = true }
wgpu = { workspace = true, optional = true }
# Workspace dependencies
fastnoise-lite = { workspace = true }
log = { workspace = true }
bezier-rs = { workspace = true, features = ["serde"] }
glam = { workspace = true, features = ["serde"] }
@ -63,17 +44,37 @@ rustc-hash = { workspace = true }
serde_json = { workspace = true }
reqwest = { workspace = true }
futures = { workspace = true }
wasm-bindgen = { workspace = true, optional = true }
js-sys = { workspace = true, optional = true }
wgpu-types = { workspace = true }
wasm-bindgen-futures = { workspace = true, optional = true }
winit = { 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"] }
image-compare = { version = "0.3.0", optional = true }
vello = { workspace = true, optional = true }
resvg = { workspace = true, optional = true }
usvg = { workspace = true }
serde = { workspace = true, optional = true, features = ["derive"] }
web-sys = { workspace = true, optional = true, features = [
"Window",
@ -86,3 +87,9 @@ web-sys = { workspace = true, optional = true, features = [
"HtmlImageElement",
"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 graphene_core::application_io::NodeGraphUpdateMessage;
use graphene_core::raster::{Color, Image, Luma, Pixel};
use image::{DynamicImage, ImageBuffer, ImageOutputFormat};
use image::{DynamicImage, ImageBuffer, ImageFormat};
use reqwest::Url;
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![]);
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()))
}

View file

@ -10,19 +10,21 @@ serde = ["dep:serde", "graphene-std/serde", "glam/serde"]
gpu = ["graphene-std/gpu", "graphene-core/gpu", "graphene-std/wgpu"]
quantization = ["graphene-std/quantization"]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
graphene-core = { workspace = true, features = ["std"] }
# Local dependencies
graphene-std = { path = "../gstd", features = ["serde"] }
graph-craft = { path = "../graph-craft" }
gpu-executor = { path = "../gpu-executor" }
wgpu-executor = { path = "../wgpu-executor" }
# Workspace dependencies
graphene-core = { workspace = true, features = ["std"] }
dyn-any = { workspace = true, features = ["log-bad-types", "glam"] }
num-traits = { workspace = true }
log = { workspace = true }
serde = { workspace = true, optional = 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 }
once_cell = { workspace = true }
# Optional workspace dependencies
serde = { workspace = true, optional = true }

View file

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

View file

@ -7,9 +7,8 @@ license = "MIT OR Apache-2.0"
[features]
default = []
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
# Local dependencies
graphene-core = { path = "../gcore", features = ["std", "alloc", "gpu"] }
graph-craft = { path = "../graph-craft" }
dyn-any = { path = "../../libraries/dyn-any", features = [
@ -17,11 +16,17 @@ dyn-any = { path = "../../libraries/dyn-any", features = [
"rc",
"glam",
] }
# Workspace dependencies
num-traits = { workspace = true }
log = { workspace = true }
serde = { workspace = true, optional = true }
glam = { workspace = true }
base64 = { workspace = true }
vulkano = { git = "https://github.com/GraphiteEditor/vulkano", branch = "fix_rust_gpu" }
bytemuck = { 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"]
passthrough = []
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
# Local dependencies
gpu-executor = { path = "../gpu-executor" }
# Workspace dependencies
graphene-core = { workspace = true, features = ["std", "alloc", "gpu"] }
graph-craft = { workspace = true }
gpu-executor = { path = "../gpu-executor" }
dyn-any = { workspace = true, features = ["log-bad-types", "rc", "glam"] }
num-traits = { workspace = true }
log = { workspace = true }
serde = { workspace = true, optional = true }
glam = { workspace = true }
base64 = { workspace = true }
bytemuck = { workspace = true }
@ -26,7 +26,14 @@ anyhow = { workspace = true }
wgpu = { workspace = true, features = ["spirv"] }
spirv = { workspace = true }
futures = { workspace = true }
futures-intrusive = "0.5.0"
web-sys = { workspace = true, features = ["HtmlCanvasElement"] }
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"
publish = false
version = "0.0.0"
rust-version = "1.66.0"
rust-version = "1.70.0"
authors = ["Graphite Authors <contact@graphite.rs>"]
edition = "2021"
readme = "../README.md"
@ -19,13 +19,14 @@ default = ["serde-discriminant"]
serde-discriminant = []
[dependencies]
# Workspace dependencies
proc-macro2 = { workspace = true }
syn = { workspace = true }
quote = { workspace = true }
[dev-dependencies.editor]
path = "../editor"
package = "graphite-editor"
[dev-dependencies]
# Local dependencies
editor = { path = "../editor", package = "graphite-editor" }
# Workspace dependencies
serde = { workspace = true }

View file

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