michaelhugi / gdtf_parser

A GDTF parser library for rust
1 stars 2 forks source link

Wanting to Contribute #1

Open Firionus opened 2 years ago

Firionus commented 2 years ago

Hey @michaelhugi!

I hope you had a nice Christmas :christmas_tree: :star2: this year, considering the circumstances of course.

As I wrote in https://github.com/Firionus/artnet_packer/issues/1, I've been developing some GDTF stuff in a private repo. Notably, I used Java XML Binding (JAXB) to generate a GDTF parser from the XSD, which I first had to update to version 1.1. After adding significant amounts of post-processing for the GDTF files, the software now allows manipulating channel functions and DMX output. We'll release that project as a technical demo in the coming weeks, but don't plan to continue development because we don't see the JVM as the right platform for open source lighting software development. Most people seem to work in C++, JS or Python. None of them want the JVM as dependency and Graal Native doesn't seem ready for the limelight yet. Rust libraries on the other hand seem easier to use cross-language via C bindings. And compared to C, Rust is easier to write without shooting yourself in the foot. Therefore, I'll start putting my GDTF knowledge into some Rust libraries over the next year.

As a first step, I set up a "reference application", something simple to develop towards with some minimum level of real-world usefulness. The easiest thing I could think of was a "GDTF Inspector", where you load in a GDTF and can see infos about the fixture. I started something at https://github.com/cueglow/egui-gdtf-inspector, but I'm completely new to egui, so let's see how it goes.

From what I've seen so far, you've made great progress towards a low-level GDTF parser in this repo. How would you describe the current state of the crate and what's missing for a proper first release? Where can I help?

Cheers, and a good new year :fireworks: Johannes

Firionus commented 1 year ago

You can find the technical demo using Java/JAXB here: https://github.com/cueglow/glowdtf. As mentioned in the README, I don't plan to continue development on that.