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
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"] }