Firionus / opengdtf

Abandoned! - A starting point for a useful GDTF Rust library
MIT License
4 stars 0 forks source link
dmx dmx512 dmx512a gdtf lighting lighting-control lights rust stage-lighting

opengdtf

Project Status: Abandoned – Initial development has started, but there has not yet been a stable, usable release; the project has been abandoned and the author(s) do not intend on continuing development.

:warning: This project never reached a usable state and probably never will. Go to gdtf.eu for a more active community. :warning:

There's an unfinished rework on the branch try_again but ultimately I noticed my own need for the project has vanished.


A starting point to build a useful open-source GDTF libary in Rust.
GDTF is a standardized fixture format for entertainment lighting.

Short-term goals

ToDo's are kept in Issues.

Principles

Don't just parse GDTF

Provide a useful higher-level API that resembles the fixture model in a useful way.

Suck out as much information as possible

Always return a valid result, even if some parts are fixed up or missing. Use mitigations (defaults, renames, ...) for unexpected conditions when possible or omit a part if mitigation is impossible or too hard.
In any case, indicate problems and actions taken in a Problem Vector.
Panics are usually considered a bug, because then no valid result is returned.

Move faster

Value developer time.

Rationale for Principles

Longer Term Goals

Why Rust?

Rust is my language of choice for this project, due to its interoperability with other languages and safety.

Interoperability is needed because creative lighting people want to work in many different languages but the community is not big enough to create GDTF implementations in every language. Safety is important because the environments in which we create stage lighting are already stressful, and software should not be a burden by being unreliable.

Other languages without a runtime, like C/C++, are interoperable but not very safe. Safe languages on the other hand often have a runtime that makes language interoperability unfeasible. This is why I think Rust is a good choice for a GDTF library.

How to Develop

see CONTRIBUTING.md

Other Links and Projects