Hibana приносит хореографическое программирование в Rust
Choreographic Programming in Rust
Hibana — это ядро рантайм-принуждения на основе хореографии для Rust. Оно позволяет исполнять конечный многосторонний протокол из единой глобальной хореографии, проецируя её в компактную программу для каждой роли. Каждый шаг send, receive или route должен соответствовать этой программе перед фиксацией прогресса. Hibana не требует стандартной библиотеки или аллокатора, использует предоставляемую вызывающим хранилище и поддерживает до 256 ролей. Протокол проверяется на каждом присоединённом эндпоинте, а распределённые гарантии зависят от условий транспорта и развёртывания.
Hibana не реализует сетевой стек или распределённый алгоритм. Она обеспечивает соблюдение протокола на каждом присоединённом эндпоинте и формулирует условия носителя, развёртывания, кодека и планирования, необходимые для подъёма этого локального результата до распределённой гарантии.
- sebastianconcpt
Мне бы очень хотелось, чтобы наша культура объясняла применимость того, что мы изобретаем, была бы в разы, в разы, в раааааазы сильнее.
Абстракции нужно заслужить.
Не потому, что их выполнение дорого, а потому, что их понимание дорого.
- dplyukhin
Любопытно, как это соотносится с существующей библиотекой хореографического программирования для Rust — ChoRus [1]. Тем, кто спрашивает о мотивации, возможно, будет интересна сопутствующая статья [2], она действительно очень хорошо написана. Группа Lindsey Kuper проделала огромную работу по популяризации хореографического программирования как DSL.
Можно получить ещё больше возможностей, если интегрировать хореографическое программирование непосредственно в компилятор — пример этого можно увидеть в Choral, расширении Java, в разработке которого я участвую уже несколько лет [3].
[1]: https://github.com/lsd-ucsc/ChoRus
- ch4s3
Похоже, в последнее время эта идея популярна. После прочтения этой статьи[1] я в итоге встроил это в свой язык, основанный на акторах[2]. В акторной конкурентности это имеет большой смысл; мне было бы любопытно узнать, что об этом думают разработчики на Rust, поскольку это несколько отличается от того, как они обычно работают с конкурентностью.
- zanderwohl
Мне бы очень хотелось, чтобы README переписали на человеческом английском. Из-за «клодишного» стиля мой мозг отказывается впитывать информацию.
- 6gvONxR4sf7o
Надеюсь, что в конце концов хореографическое программирование будет встроено в среды выполнения языков настолько, что будет ощущаться как ручное размещение определённых данных в определённых частях RAM/кэша. Это одна из тех идей, которые отличны, но ручные реализации всегда кажутся бардаком.