Hibana приносит хореографическое программирование в Rust

Choreographic Programming in Rust

Hibana — это ядро рантайм-принуждения на основе хореографии для Rust. Оно позволяет исполнять конечный многосторонний протокол из единой глобальной хореографии, проецируя её в компактную программу для каждой роли. Каждый шаг send, receive или route должен соответствовать этой программе перед фиксацией прогресса. Hibana не требует стандартной библиотеки или аллокатора, использует предоставляемую вызывающим хранилище и поддерживает до 256 ролей. Протокол проверяется на каждом присоединённом эндпоинте, а распределённые гарантии зависят от условий транспорта и развёртывания.

Hibana не реализует сетевой стек или распределённый алгоритм. Она обеспечивает соблюдение протокола на каждом присоединённом эндпоинте и формулирует условия носителя, развёртывания, кодека и планирования, необходимые для подъёма этого локального результата до распределённой гарантии.
  1. sebastianconcpt

    Мне бы очень хотелось, чтобы наша культура объясняла применимость того, что мы изобретаем, была бы в разы, в разы, в раааааазы сильнее.

    Абстракции нужно заслужить.

    Не потому, что их выполнение дорого, а потому, что их понимание дорого.

  2. dplyukhin

    Любопытно, как это соотносится с существующей библиотекой хореографического программирования для Rust — ChoRus [1]. Тем, кто спрашивает о мотивации, возможно, будет интересна сопутствующая статья [2], она действительно очень хорошо написана. Группа Lindsey Kuper проделала огромную работу по популяризации хореографического программирования как DSL.

    Можно получить ещё больше возможностей, если интегрировать хореографическое программирование непосредственно в компилятор — пример этого можно увидеть в Choral, расширении Java, в разработке которого я участвую уже несколько лет [3].

    [1]: https://github.com/lsd-ucsc/ChoRus

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

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

  3. ch4s3

    Похоже, в последнее время эта идея популярна. После прочтения этой статьи[1] я в итоге встроил это в свой язык, основанный на акторах[2]. В акторной конкурентности это имеет большой смысл; мне было бы любопытно узнать, что об этом думают разработчики на Rust, поскольку это несколько отличается от того, как они обычно работают с конкурентностью.

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

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

  4. zanderwohl

    Мне бы очень хотелось, чтобы README переписали на человеческом английском. Из-за «клодишного» стиля мой мозг отказывается впитывать информацию.

  5. 6gvONxR4sf7o

    Надеюсь, что в конце концов хореографическое программирование будет встроено в среды выполнения языков настолько, что будет ощущаться как ручное размещение определённых данных в определённых частях RAM/кэша. Это одна из тех идей, которые отличны, но ручные реализации всегда кажутся бардаком.

Ещё за этот день

2026-10-12