Using Rust in a computer graphics pipeline?


#1

I have been checking out the Rust programming language in my spare time:

https://www.rust-lang.org/en-US/

Has anyone used it in their pipelines?

At PyCon last year, I saw an interesting talk on using Rust to extend Python:


#2

We use some small bits and pieces of Go (mostly not written by TAs). While you could certainly use Rust to develop binary extensions for Python, Rust does have a reputation as a slow-to-develop-with language: all that memory safety comes at the cost of very slow dev cycles because the compiler is not going to let many things pass and you’ll have to work through a lot of issues one at a time to get to a working piece of software.

It’s a cool language, but personally it feels like it’s more suited to systems programming than the crazy-ass world of tools dev and support.


#3

I think the interesting question is in the case where you have to write a python extension module, is it better to reach for C, Rust, or something like Cython?

You’re already at the point where you’re throwing out the dev speed and flexibility of python for whatever reason, so which sarlac pit of weirdness do we throw ourselves into?


#4

R.White,

I agree.

Theodox,

What do you use Go for? I don’t think that language is used a lot in the computer graphics space.

Thanks!


#5

It’s primarily for pipeline stuff – it has the highest portability of the big languages, since it makes tiny standalone exes.

For actual graphics work, in games anyway we tend to be so tied to the engine that it’s whatever the engine uses – C++ for Unreal, C# for Unity, etc.

If you’re going to try GPGPU work, that is coming from whatever compute language is the office preference (eg, CUDA or similar) . Once that enters the picture is is usually, in practical terms, where all the worries are – because its such a weird way to program. Compared to getting a complex compute shader to stabilize things like const guarantees seem like a luxury concern.


#6

Really cool. Thanks for the information.