node_engine 0.6.0

Node graph engine for Shader graph or Geometry graph.
Documentation
[package]
name = "node_engine"
version = "0.6.0"
edition = "2024"
authors = ["Robert G. Jakabosky <rjakabosky+neopallium@neoawareness.com>"]
license = "MIT/Apache-2.0"
description = "Node graph engine for Shader graph or Geometry graph."
keywords = ["node", "graph", "shader", "geometry"]
repository = "https://github.com/Neopallium/node_engine"
homepage = "https://github.com/Neopallium/node_engine"

[features]
default = ["egui", "math_nodes", "shader_nodes", "bevy"]

egui = ["dep:egui", "egui_extras"]

math_nodes = []
shader_nodes = []

bevy = ["dep:bevy", "shader_nodes"]

[dependencies]
anyhow = "1.0"
log = "0.4"
env_logger = "0.10"
lazy_static = "1.4.0"
thiserror = "1.0"

emath = { version = "0.32", default-features = false, features = ["serde"] }
ecolor = { version = "0.32", default-features = false, features = ["serde"] }
egui = { version = "0.32", optional = true, default-features = false, features = [
    "serde",
] }
egui_extras = { version = "0.32", optional = true, default-features = false, features = [
    "serde",
] }
hex = "0.4"

serde = { version = "1", features = ["derive", "rc"] }
serde_json = { version = "1" }
inventory = { version = "0.3" }
erased-serde = "0.3"
heck = "0.4"

glam = { version = "0.29", features = ["serde"] }
indexmap = { version = "2.0", features = ["serde"] }
uuid = { version = "1.4", features = ["v4", "v5", "serde"] }

bevy = { version = "0.16", optional = true, default-features = false, features = [
    "bevy_asset",
    "bevy_render",
    "bevy_pbr",
] }

[dev-dependencies]
criterion = "0.5"
eframe = { version = "0.32", features = ["persistence"] }

[[bench]]
name = "node_graph"
harness = false

[profile.release]
opt-level = 2 # fast and small wasm

# Optimize all dependencies even in debug builds:
[profile.dev.package."*"]
opt-level = 2

[patch.crates-io]

# If you want to use the bleeding edge version of egui and eframe:
# egui = { git = "https://github.com/emilk/egui", branch = "master" }
# eframe = { git = "https://github.com/emilk/egui", branch = "master" }

# If you fork https://github.com/emilk/egui you can test with:
# egui = { path = "../egui/crates/egui" }
# eframe = { path = "../egui/crates/eframe" }