Hew
Un langage qui anticipe les défaillances.
Hew compile les programmes basés sur des acteurs en code natif. Chaque acteur possède son état et les superviseurs décident comment redémarrer les acteurs en échec.
L’état reste avec l’acteur
Cet acteur de session possède son vecteur de messages. Seul post le modifie, et chaque appel attend la fin du handler avant de retourner un Result.
count lit le même état privé et retourne sa valeur au caller. La branche d’erreur reste visible puisqu’un acteur peut s’arrêter avant la fin de l’appel.
// A chat session is an actor: state lives in fields and only its handlers
// can mutate it. Ordinary actor calls wait for the handler and return a
// Result, whether or not the handler itself returns a value.
actor Session {
let user: string;
var messages: Vec<string> = Vec.new();
receive fn post(text: string) {
messages.push(text);
}
receive fn count() -> i64 {
messages.len()
}
}
fn main() {
let chat = spawn Session { user: "ada", messages: [] };
chat.post("hello").expect("actor stopped");
chat.post("world").expect("actor stopped");
let total = chat.count();
match total {
.Ok(n) => println(f"{n} messages posted"),
.Err(_) => println("session unavailable"),
}
}Installer Hew
Choisissez votre système d’exploitation et la version du compilateur.
v0.9.3 · Version
$ curl -fsSL https://hew.sh/install | bash -s -- --version 0.9.3$ curl -fsSL https://hew.sh/install | bash -s -- --version 0.9.3> Invoke-WebRequest https://hew.sh/install.ps1 -OutFile install.ps1
.\install.ps1 -Version 0.9.3Ce que le langage rend explicite
Les surfaces d’acteurs, de supervision, de concurrence et de types Wire offertes dans v0.9.3.
- Appelant:
chat.post("hello"). Attend le résultat du gestionnaire. - Boîte aux lettres:
post("hello"). - Un tour de gestionnaire:
messages.push(text). État privé:messages: ["hello"]. - Résultat de l’appel → Appelant.
Un appel post réussi met à jour l’état privé de Session avant de renvoyer son résultat.
Isolation par acteurs
Chaque acteur possède son état de façon exclusive. Le compilateur applique les frontières locales des acteurs et les vérifications Send.
Arbres de supervision
Les services tombent — Hew l'anticipe. Les acteurs superviseurs, les budgets de redémarrage, et les stratégies de redémarrage de base font partie du langage lui-même, et non d’un framework séparé.
Concurrence structurée
Un scope délimite le travail enfant et attend sa fin avant de retourner; fork lance des appels indépendants que l’on peut réunir ensuite.
Contrats Wire
Les types Wire placent les schémas, étiquettes de champ, et vérifications de compatibilité dans le langage, aux côtés des acteurs qui les envoient.
Journal de développement
Hew 0.6.2: safer values, steadier services Edit parsed configuration without changing its source value, then see how Hew 0.6.2 carries the same actor reference across local and remote services. 21 oct. 2026Lire le blogue → EN
Hew Notes
Language development, engineering articles, releases and community projects. About once a month, with an extra issue for a significant release. Written in English.
Subscribe to Hew Notes