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.
  1. 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.

  2. 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

    [2]: https://arxiv.org/pdf/2311.11472

    [3]: https://github.com/choral-lang/choral

  3. 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.

    [1] https://simonjf.com/writing/eventactors.pdf

    [2] https://march-lang.org/docs/choreography/

  4. 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.

  5. 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.

Más de este día

2026-10-12