Read the introduction article: https://www.hailelagi.com/hacks/thumbelina/
Rust backed erlang NIF for image processing. This is a fun idea/experiment combining the incredible I/O throughput and concurrency features of the BEAM and the memory safety of rust.
Things to consider:
-
The most important reason, although rust is memory safe, and rustler catches panics before they unwind to the C interface, it is not possible to co-operatively schedule a native call.
-
CPU vs GPU programming (https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html)
-
The erlang vm isn't bad at all number crunching, there's nuanced fine print
Thanks to the maintainers of image, thumbelina adopts a sub-set of its api design. If running in production, consider an external service like aws lambda or: