Hibana lleva la programación coreográfica a Rust con un kernel de ejecución en tiempo real
Choreographic Programming in Rust
Hibana permite ejecutar un protocolo multipartito finito desde una coreografía global en Rust. Proyecta la coreografía en un programa compacto para cada rol y cada paso de envío, recepción o ruta debe coincidir antes de confirmar el progreso. Es un kernel de ejecución derivado de la coreografía, no_std, sin asignador, con endpoints afines y transporte neutral. Soporta hasta 256 roles y garantiza que los tipos de endpoint no crezcan con el protocolo.
Hibana no implementa una pila de red ni un algoritmo distribuido. Aplica el protocolo en cada endpoint adjunto y establece las condiciones de portador, despliegue, códec y planificación necesarias para elevar ese resultado local a una garantía distribuida.
- sebastianconcpt
De verdad desearía que nuestra cultura para explicar la aplicabilidad de las cosas que inventamos fuera muchísimo, muchísimo, muchíiiisimo más fuerte.
Las abstracciones deberían ganarse.
No porque ejecutarlas sea costoso, sino porque entenderlas lo es.
- dplyukhin
Me da curiosidad cómo se compara esto con la biblioteca de programación coreográfica que ya existe para Rust, ChoRus [1]. Quienes pidan motivación podrían disfrutar el paper que la acompaña [2], que está realmente bien escrito. El grupo de Lindsey Kuper ha hecho un montón de gran trabajo popularizando la programación coreográfica como DSL.
Puedes obtener aún más potencia si integras la programación coreográfica directamente en el compilador; para un ejemplo de eso puedes ver Choral, una extensión de Java a la que he estado contribuyendo durante algunos años [3].
[1]: https://github.com/lsd-ucsc/ChoRus
- ch4s3
Parece ser una idea popular recientemente. Después de leer este paper[1] terminé incorporando esto en mi lenguaje basado en actores[2]. Tiene mucho sentido en concurrencia basada en actores; me daría curiosidad saber qué opinan los devs de Rust de esto, ya que es un poco diferente de cómo suelen hacer concurrencia.
- zanderwohl
Realmente me gustaría que el README se revisara en inglés humano. Lo estilo Claude me hace que mi cerebro se resista a absorber la información.
- 6gvONxR4sf7o
Espero que con el tiempo la programación coreográfica esté integrada en los runtimes de los lenguajes hasta el punto de que se sienta como colocar manualmente ciertos datos en ciertas partes de la RAM/caché. Es una de esas ideas que son geniales, pero las implementaciones manuales siempre parecen un desastre.