Hibana bringt Choreographic Programming mit Rust auf eingebettete Systeme
Choreographic Programming in Rust
Hibana ist ein Rust-Framework, das einen globalen Choreographie-Protokoll in kompakte RoleProgram-Deskriptoren pro Rolle projiziert und zur Laufzeit jeden send-, receive- oder route-Schritt erzwingt. Es ist no_std, benötigt keinen Allokator und unterstützt bis zu 256 Rollen. Statt für jeden Protokollzustand einen eigenen Rust-Continuation-Typ zu erzeugen, verwendet es kompakte Deskriptoren, sodass das Protokollwachstum nicht zu einer Explosion der Endpoint-Typen führt. Die Garantie gilt pro Session, nicht global.
Hibana does not implement a network stack or a distributed algorithm. It enforces the protocol at each attached endpoint and states the carrier, deployment, codec, and scheduling conditions needed to lift that local result to a distributed guarantee.
- sebastianconcpt
Ich wünschte wirklich, unsere Kultur würde die Anwendbarkeit der Dinge, die wir erfinden, viel viel viiiel besser erklären.
Abstraktionen sollten verdient sein.
Nicht weil ihre Ausführung teuer ist, sondern weil ihr Verständnis es ist.
- dplyukhin
Interessant, wie sich das mit Rusts bestehender Bibliothek für choreographische Programmierung, ChoRus [1], vergleicht. Diejenigen von euch, die nach Motivation fragen, könnten Freude an dem begleitenden Paper [2] haben, das wirklich gut geschrieben ist. Lindsey Kupers Gruppe hat eine Menge großartiger Arbeit geleistet, um choreographische Programmierung als DSL populär zu machen.
Man kann noch mehr Power bekommen, wenn man choreographische Programmierung direkt in den Compiler integriert – ein Beispiel dafür ist Choral, eine Erweiterung von Java, zu der ich seit ein paar Jahren beitrage [3].
[1]: https://github.com/lsd-ucsc/ChoRus
- ch4s3
Das scheint in letzter Zeit ein populäres Konzept zu sein. Nachdem ich dieses Paper [1] gelesen hatte, habe ich es in meine aktorbasierte Sprache [2] eingebaut. Es ergibt sehr viel Sinn bei aktorbasierter Nebenläufigkeit. Ich wäre neugierig zu erfahren, was Rust-Entwickler davon halten, da es sich ein wenig davon unterscheidet, wie sie üblicherweise Nebenläufigkeit umsetzen.
- zanderwohl
Ich würde mir wirklich wünschen, dass die README in menschlichem Englisch überarbeitet wird. Claudisch lässt mein Gehirn sich dagegen sträuben, die Informationen aufzunehmen.
- 6gvONxR4sf7o
Ich hoffe, dass choreographische Programmierung irgendwann so tief in Sprachlaufzeitumgebungen integriert ist, dass es sich anfühlt, als platziere man bestimmte Daten manuell auf bestimmten Teilen des RAM/Cache. Es ist eine dieser großartigen Ideen, aber manuelle Implementierungen scheinen immer ein Chaos zu sein.