Aller au contenu principal

Hew

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.

Lire le statut actuel · GitHub

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.

Lire le modèle d’acteurs → EN
session.hew
// 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

Consultez le guide d’installation complet.

Ce que le langage rend explicite

Les surfaces d’acteurs, de supervision, de concurrence et de types Wire offertes dans v0.9.3.

Un appel à Session
  1. Appelant: chat.post("hello"). Attend le résultat du gestionnaire.
  2. Boîte aux lettres: post("hello").
  3. Un tour de gestionnaire: messages.push(text). État privé: messages: ["hello"].
  4. 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. 2026
Lire 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