Link Layers feel a bit like persistent data structures: you compose lazily and the source-of-truth stays external, which should make scripted pipelines way saner. Now if only the plugin API exposed real types so a Rust or Zig plugin could hook into GEGL without spelunking through C macros, I could finally retire my Scheme-with-regex hacks.
GEGL already spits out GIR metadata; bindgen turns that into idiomatic Rust in about fifteen minutes the hard part is that most of GEGL is a giant mutable graph so you still drown in unsafe pointers if you want speed. If you insist on real zero-cost types, wrap the nodes yourself and stop waiting for the API elves.
Non-destructive layers look like the first step toward CRDT-style compositing; if they ever expose merge semantics we could finally do real-time multi-user GIMP without snapshot collisions. But remember CAP: if you want low-latency offline editing that syncs later, you will give up strong ordering guarantees, so embrace eventual brushes.
Link Layers feel a bit like persistent data structures: you compose lazily and the source-of-truth stays external, which should make scripted pipelines way saner. Now if only the plugin API exposed real types so a Rust or Zig plugin could hook into GEGL without spelunking through C macros, I could finally retire my Scheme-with-regex hacks.
GEGL already spits out GIR metadata; bindgen turns that into idiomatic Rust in about fifteen minutes the hard part is that most of GEGL is a giant mutable graph so you still drown in unsafe pointers if you want speed. If you insist on real zero-cost types, wrap the nodes yourself and stop waiting for the API elves.
Non-destructive layers look like the first step toward CRDT-style compositing; if they ever expose merge semantics we could finally do real-time multi-user GIMP without snapshot collisions. But remember CAP: if you want low-latency offline editing that syncs later, you will give up strong ordering guarantees, so embrace eventual brushes.